From 250a8a6be28e8bc5a1d498399f1b2308a99bd92b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Tue, 30 Jun 2026 15:46:41 +0400 Subject: [PATCH] add: HAR traces --- .github/copilot-instructions.md | 63 + .github/pravila.md | 56 + .github/workflows/build-registry-image.yml | 33 + .github/workflows/publish-docs.yml | 57 + 01_generate_yamls.sh | 78 + REPO_CONTENTS.md | 102 + artifacts/api-meta/dev/STATUS.txt | 1 + artifacts/api-meta/dev/operations/1.list | 6 + artifacts/api-meta/dev/operations/1/18.json | 1 + artifacts/api-meta/dev/operations/1/240.json | 1 + artifacts/api-meta/dev/operations/1/71.json | 1 + artifacts/api-meta/dev/operations/1/92.json | 1 + artifacts/api-meta/dev/operations/1/93.json | 1 + artifacts/api-meta/dev/operations/1/94.json | 1 + artifacts/api-meta/dev/operations/100.list | 2 + artifacts/api-meta/dev/operations/100/41.json | 1 + artifacts/api-meta/dev/operations/100/42.json | 1 + artifacts/api-meta/dev/operations/109.list | 0 artifacts/api-meta/dev/operations/110.list | 2 + artifacts/api-meta/dev/operations/110/43.json | 1 + artifacts/api-meta/dev/operations/110/44.json | 1 + artifacts/api-meta/dev/operations/111.list | 3 + artifacts/api-meta/dev/operations/111/45.json | 1 + artifacts/api-meta/dev/operations/111/46.json | 1 + artifacts/api-meta/dev/operations/111/90.json | 1 + artifacts/api-meta/dev/operations/112.list | 3 + artifacts/api-meta/dev/operations/112/84.json | 1 + artifacts/api-meta/dev/operations/112/86.json | 1 + artifacts/api-meta/dev/operations/112/87.json | 1 + artifacts/api-meta/dev/operations/113.list | 1 + .../api-meta/dev/operations/113/107.json | 1 + artifacts/api-meta/dev/operations/115.list | 9 + .../api-meta/dev/operations/115/138.json | 1 + .../api-meta/dev/operations/115/139.json | 1 + .../api-meta/dev/operations/115/140.json | 1 + .../api-meta/dev/operations/115/141.json | 1 + .../api-meta/dev/operations/115/142.json | 1 + .../api-meta/dev/operations/115/242.json | 1 + .../api-meta/dev/operations/115/243.json | 1 + .../api-meta/dev/operations/115/247.json | 1 + .../api-meta/dev/operations/115/248.json | 1 + artifacts/api-meta/dev/operations/116.list | 11 + .../api-meta/dev/operations/116/148.json | 1 + .../api-meta/dev/operations/116/149.json | 1 + .../api-meta/dev/operations/116/160.json | 1 + .../api-meta/dev/operations/116/161.json | 1 + .../api-meta/dev/operations/116/162.json | 1 + .../api-meta/dev/operations/116/165.json | 1 + .../api-meta/dev/operations/116/166.json | 1 + .../api-meta/dev/operations/116/167.json | 1 + .../api-meta/dev/operations/116/168.json | 1 + .../api-meta/dev/operations/116/169.json | 1 + .../api-meta/dev/operations/116/170.json | 1 + artifacts/api-meta/dev/operations/119.list | 5 + .../api-meta/dev/operations/119/175.json | 1 + .../api-meta/dev/operations/119/176.json | 1 + .../api-meta/dev/operations/119/177.json | 1 + .../api-meta/dev/operations/119/178.json | 1 + .../api-meta/dev/operations/119/180.json | 1 + artifacts/api-meta/dev/operations/12.list | 7 + artifacts/api-meta/dev/operations/12/1.json | 1 + artifacts/api-meta/dev/operations/12/2.json | 1 + artifacts/api-meta/dev/operations/12/3.json | 1 + artifacts/api-meta/dev/operations/12/4.json | 1 + artifacts/api-meta/dev/operations/12/5.json | 1 + artifacts/api-meta/dev/operations/12/6.json | 1 + artifacts/api-meta/dev/operations/12/7.json | 1 + artifacts/api-meta/dev/operations/120.list | 9 + .../api-meta/dev/operations/120/181.json | 1 + .../api-meta/dev/operations/120/182.json | 1 + .../api-meta/dev/operations/120/183.json | 1 + .../api-meta/dev/operations/120/184.json | 1 + .../api-meta/dev/operations/120/185.json | 1 + .../api-meta/dev/operations/120/186.json | 1 + .../api-meta/dev/operations/120/187.json | 1 + .../api-meta/dev/operations/120/188.json | 1 + .../api-meta/dev/operations/120/189.json | 1 + artifacts/api-meta/dev/operations/13.list | 2 + artifacts/api-meta/dev/operations/13/51.json | 1 + artifacts/api-meta/dev/operations/13/52.json | 1 + artifacts/api-meta/dev/operations/149.list | 5 + .../api-meta/dev/operations/149/202.json | 1 + .../api-meta/dev/operations/149/203.json | 1 + .../api-meta/dev/operations/149/204.json | 1 + .../api-meta/dev/operations/149/205.json | 1 + .../api-meta/dev/operations/149/206.json | 1 + artifacts/api-meta/dev/operations/150.list | 7 + .../api-meta/dev/operations/150/108.json | 1 + .../api-meta/dev/operations/150/109.json | 1 + .../api-meta/dev/operations/150/110.json | 1 + .../api-meta/dev/operations/150/173.json | 1 + .../api-meta/dev/operations/150/174.json | 1 + .../api-meta/dev/operations/150/179.json | 1 + .../api-meta/dev/operations/150/253.json | 1 + artifacts/api-meta/dev/operations/151.list | 16 + .../api-meta/dev/operations/151/210.json | 1 + .../api-meta/dev/operations/151/211.json | 1 + .../api-meta/dev/operations/151/212.json | 1 + .../api-meta/dev/operations/151/213.json | 1 + .../api-meta/dev/operations/151/214.json | 1 + .../api-meta/dev/operations/151/215.json | 1 + .../api-meta/dev/operations/151/216.json | 1 + .../api-meta/dev/operations/151/230.json | 1 + .../api-meta/dev/operations/151/231.json | 1 + .../api-meta/dev/operations/151/232.json | 1 + .../api-meta/dev/operations/151/233.json | 1 + .../api-meta/dev/operations/151/234.json | 1 + .../api-meta/dev/operations/151/236.json | 1 + .../api-meta/dev/operations/151/237.json | 1 + .../api-meta/dev/operations/151/238.json | 1 + .../api-meta/dev/operations/151/239.json | 1 + artifacts/api-meta/dev/operations/152.list | 11 + .../api-meta/dev/operations/152/217.json | 1 + .../api-meta/dev/operations/152/218.json | 1 + .../api-meta/dev/operations/152/219.json | 1 + .../api-meta/dev/operations/152/220.json | 1 + .../api-meta/dev/operations/152/221.json | 1 + .../api-meta/dev/operations/152/222.json | 1 + .../api-meta/dev/operations/152/223.json | 1 + .../api-meta/dev/operations/152/224.json | 1 + .../api-meta/dev/operations/152/225.json | 1 + .../api-meta/dev/operations/152/226.json | 1 + .../api-meta/dev/operations/152/227.json | 1 + artifacts/api-meta/dev/operations/153.list | 2 + .../api-meta/dev/operations/153/229.json | 1 + .../api-meta/dev/operations/153/235.json | 1 + artifacts/api-meta/dev/operations/19.list | 6 + artifacts/api-meta/dev/operations/19/136.json | 1 + artifacts/api-meta/dev/operations/19/137.json | 1 + artifacts/api-meta/dev/operations/19/143.json | 1 + artifacts/api-meta/dev/operations/19/144.json | 1 + artifacts/api-meta/dev/operations/19/207.json | 1 + artifacts/api-meta/dev/operations/19/249.json | 1 + artifacts/api-meta/dev/operations/2.list | 5 + artifacts/api-meta/dev/operations/2/74.json | 1 + artifacts/api-meta/dev/operations/2/75.json | 1 + artifacts/api-meta/dev/operations/2/76.json | 1 + artifacts/api-meta/dev/operations/2/97.json | 1 + artifacts/api-meta/dev/operations/2/98.json | 1 + artifacts/api-meta/dev/operations/20.list | 4 + artifacts/api-meta/dev/operations/20/118.json | 1 + artifacts/api-meta/dev/operations/20/119.json | 1 + artifacts/api-meta/dev/operations/20/23.json | 1 + artifacts/api-meta/dev/operations/20/8.json | 1 + artifacts/api-meta/dev/operations/21.list | 6 + artifacts/api-meta/dev/operations/21/112.json | 1 + artifacts/api-meta/dev/operations/21/171.json | 1 + artifacts/api-meta/dev/operations/21/172.json | 1 + artifacts/api-meta/dev/operations/21/24.json | 1 + artifacts/api-meta/dev/operations/21/250.json | 1 + artifacts/api-meta/dev/operations/21/9.json | 1 + artifacts/api-meta/dev/operations/22.list | 4 + artifacts/api-meta/dev/operations/22/10.json | 1 + artifacts/api-meta/dev/operations/22/111.json | 1 + artifacts/api-meta/dev/operations/22/25.json | 1 + artifacts/api-meta/dev/operations/22/252.json | 1 + artifacts/api-meta/dev/operations/23.list | 5 + artifacts/api-meta/dev/operations/23/26.json | 1 + artifacts/api-meta/dev/operations/23/27.json | 1 + artifacts/api-meta/dev/operations/23/28.json | 1 + artifacts/api-meta/dev/operations/23/29.json | 1 + artifacts/api-meta/dev/operations/23/68.json | 1 + artifacts/api-meta/dev/operations/24.list | 0 artifacts/api-meta/dev/operations/25.list | 3 + artifacts/api-meta/dev/operations/25/197.json | 1 + artifacts/api-meta/dev/operations/25/56.json | 1 + artifacts/api-meta/dev/operations/25/57.json | 1 + artifacts/api-meta/dev/operations/26.list | 4 + artifacts/api-meta/dev/operations/26/208.json | 1 + artifacts/api-meta/dev/operations/26/209.json | 1 + artifacts/api-meta/dev/operations/26/69.json | 1 + artifacts/api-meta/dev/operations/26/70.json | 1 + artifacts/api-meta/dev/operations/27.list | 5 + artifacts/api-meta/dev/operations/27/100.json | 1 + artifacts/api-meta/dev/operations/27/101.json | 1 + artifacts/api-meta/dev/operations/27/102.json | 1 + artifacts/api-meta/dev/operations/27/103.json | 1 + artifacts/api-meta/dev/operations/27/104.json | 1 + artifacts/api-meta/dev/operations/28.list | 6 + artifacts/api-meta/dev/operations/28/132.json | 1 + artifacts/api-meta/dev/operations/28/133.json | 1 + artifacts/api-meta/dev/operations/28/134.json | 1 + artifacts/api-meta/dev/operations/28/135.json | 1 + artifacts/api-meta/dev/operations/28/159.json | 1 + artifacts/api-meta/dev/operations/28/164.json | 1 + artifacts/api-meta/dev/operations/29.list | 5 + artifacts/api-meta/dev/operations/29/191.json | 1 + artifacts/api-meta/dev/operations/29/192.json | 1 + artifacts/api-meta/dev/operations/29/193.json | 1 + artifacts/api-meta/dev/operations/29/195.json | 1 + artifacts/api-meta/dev/operations/29/251.json | 1 + artifacts/api-meta/dev/operations/32.list | 2 + artifacts/api-meta/dev/operations/32/32.json | 1 + artifacts/api-meta/dev/operations/32/33.json | 1 + artifacts/api-meta/dev/operations/50.list | 6 + artifacts/api-meta/dev/operations/50/128.json | 1 + artifacts/api-meta/dev/operations/50/129.json | 1 + artifacts/api-meta/dev/operations/50/16.json | 1 + artifacts/api-meta/dev/operations/50/17.json | 1 + artifacts/api-meta/dev/operations/50/66.json | 1 + artifacts/api-meta/dev/operations/50/67.json | 1 + artifacts/api-meta/dev/operations/81.list | 2 + artifacts/api-meta/dev/operations/81/12.json | 1 + artifacts/api-meta/dev/operations/81/13.json | 1 + artifacts/api-meta/dev/operations/82.list | 2 + artifacts/api-meta/dev/operations/82/14.json | 1 + artifacts/api-meta/dev/operations/82/15.json | 1 + artifacts/api-meta/dev/operations/88.list | 2 + artifacts/api-meta/dev/operations/88/105.json | 1 + artifacts/api-meta/dev/operations/88/99.json | 1 + artifacts/api-meta/dev/operations/89.list | 5 + artifacts/api-meta/dev/operations/89/125.json | 1 + artifacts/api-meta/dev/operations/89/145.json | 1 + artifacts/api-meta/dev/operations/89/146.json | 1 + artifacts/api-meta/dev/operations/89/88.json | 1 + artifacts/api-meta/dev/operations/89/89.json | 1 + artifacts/api-meta/dev/operations/90.list | 11 + artifacts/api-meta/dev/operations/90/114.json | 1 + artifacts/api-meta/dev/operations/90/115.json | 1 + artifacts/api-meta/dev/operations/90/19.json | 1 + artifacts/api-meta/dev/operations/90/20.json | 1 + artifacts/api-meta/dev/operations/90/241.json | 1 + artifacts/api-meta/dev/operations/90/244.json | 1 + artifacts/api-meta/dev/operations/90/245.json | 1 + artifacts/api-meta/dev/operations/90/246.json | 1 + artifacts/api-meta/dev/operations/90/47.json | 1 + artifacts/api-meta/dev/operations/90/48.json | 1 + artifacts/api-meta/dev/operations/90/54.json | 1 + artifacts/api-meta/dev/operations/91.list | 2 + artifacts/api-meta/dev/operations/91/21.json | 1 + artifacts/api-meta/dev/operations/91/22.json | 1 + artifacts/api-meta/dev/operations/92.list | 8 + artifacts/api-meta/dev/operations/92/190.json | 1 + artifacts/api-meta/dev/operations/92/194.json | 1 + artifacts/api-meta/dev/operations/92/196.json | 1 + artifacts/api-meta/dev/operations/92/198.json | 1 + artifacts/api-meta/dev/operations/92/199.json | 1 + artifacts/api-meta/dev/operations/92/200.json | 1 + artifacts/api-meta/dev/operations/92/201.json | 1 + artifacts/api-meta/dev/operations/92/37.json | 1 + artifacts/api-meta/dev/operations/93.list | 5 + artifacts/api-meta/dev/operations/93/106.json | 1 + artifacts/api-meta/dev/operations/93/116.json | 1 + artifacts/api-meta/dev/operations/93/117.json | 1 + artifacts/api-meta/dev/operations/93/38.json | 1 + artifacts/api-meta/dev/operations/93/39.json | 1 + artifacts/api-meta/dev/operations/94.list | 7 + artifacts/api-meta/dev/operations/94/163.json | 1 + artifacts/api-meta/dev/operations/94/49.json | 1 + artifacts/api-meta/dev/operations/94/50.json | 1 + artifacts/api-meta/dev/operations/94/53.json | 1 + artifacts/api-meta/dev/operations/94/55.json | 1 + artifacts/api-meta/dev/operations/94/95.json | 1 + artifacts/api-meta/dev/operations/94/96.json | 1 + artifacts/api-meta/dev/operations/95.list | 6 + artifacts/api-meta/dev/operations/95/120.json | 1 + artifacts/api-meta/dev/operations/95/121.json | 1 + artifacts/api-meta/dev/operations/95/58.json | 1 + artifacts/api-meta/dev/operations/95/59.json | 1 + artifacts/api-meta/dev/operations/95/60.json | 1 + artifacts/api-meta/dev/operations/95/61.json | 1 + artifacts/api-meta/dev/operations/96.list | 6 + artifacts/api-meta/dev/operations/96/122.json | 1 + artifacts/api-meta/dev/operations/96/123.json | 1 + artifacts/api-meta/dev/operations/96/62.json | 1 + artifacts/api-meta/dev/operations/96/63.json | 1 + artifacts/api-meta/dev/operations/96/64.json | 1 + artifacts/api-meta/dev/operations/96/65.json | 1 + artifacts/api-meta/dev/operations/97.list | 2 + artifacts/api-meta/dev/operations/97/72.json | 1 + artifacts/api-meta/dev/operations/97/73.json | 1 + artifacts/api-meta/dev/operations/98.list | 6 + artifacts/api-meta/dev/operations/98/130.json | 1 + artifacts/api-meta/dev/operations/98/131.json | 1 + artifacts/api-meta/dev/operations/98/77.json | 1 + artifacts/api-meta/dev/operations/98/78.json | 1 + artifacts/api-meta/dev/operations/98/79.json | 1 + artifacts/api-meta/dev/operations/98/81.json | 1 + artifacts/api-meta/dev/operations/99.list | 5 + artifacts/api-meta/dev/operations/99/126.json | 1 + artifacts/api-meta/dev/operations/99/127.json | 1 + artifacts/api-meta/dev/operations/99/82.json | 1 + artifacts/api-meta/dev/operations/99/83.json | 1 + artifacts/api-meta/dev/operations/99/91.json | 1 + artifacts/api-meta/dev/services.json | 1 + artifacts/api-meta/dev/services/1.json | 1 + artifacts/api-meta/dev/services/100.json | 1 + artifacts/api-meta/dev/services/109.json | 1 + artifacts/api-meta/dev/services/110.json | 1 + artifacts/api-meta/dev/services/111.json | 1 + artifacts/api-meta/dev/services/112.json | 1 + artifacts/api-meta/dev/services/113.json | 1 + artifacts/api-meta/dev/services/115.json | 1 + artifacts/api-meta/dev/services/116.json | 1 + artifacts/api-meta/dev/services/119.json | 1 + artifacts/api-meta/dev/services/12.json | 1 + artifacts/api-meta/dev/services/120.json | 1 + artifacts/api-meta/dev/services/13.json | 1 + artifacts/api-meta/dev/services/149.json | 1 + artifacts/api-meta/dev/services/150.json | 1 + artifacts/api-meta/dev/services/151.json | 1 + artifacts/api-meta/dev/services/152.json | 1 + artifacts/api-meta/dev/services/153.json | 1 + artifacts/api-meta/dev/services/19.json | 1 + artifacts/api-meta/dev/services/2.json | 1 + artifacts/api-meta/dev/services/20.json | 1 + artifacts/api-meta/dev/services/21.json | 1 + artifacts/api-meta/dev/services/22.json | 1 + artifacts/api-meta/dev/services/23.json | 1 + artifacts/api-meta/dev/services/24.json | 1 + artifacts/api-meta/dev/services/25.json | 1 + artifacts/api-meta/dev/services/26.json | 1 + artifacts/api-meta/dev/services/27.json | 1 + artifacts/api-meta/dev/services/28.json | 1 + artifacts/api-meta/dev/services/29.json | 1 + artifacts/api-meta/dev/services/32.json | 1 + artifacts/api-meta/dev/services/50.json | 1 + artifacts/api-meta/dev/services/81.json | 1 + artifacts/api-meta/dev/services/82.json | 1 + artifacts/api-meta/dev/services/88.json | 1 + artifacts/api-meta/dev/services/89.json | 1 + artifacts/api-meta/dev/services/90.json | 1 + artifacts/api-meta/dev/services/91.json | 1 + artifacts/api-meta/dev/services/92.json | 1 + artifacts/api-meta/dev/services/93.json | 1 + artifacts/api-meta/dev/services/94.json | 1 + artifacts/api-meta/dev/services/95.json | 1 + artifacts/api-meta/dev/services/96.json | 1 + artifacts/api-meta/dev/services/97.json | 1 + artifacts/api-meta/dev/services/98.json | 1 + artifacts/api-meta/dev/services/99.json | 1 + artifacts/api-meta/prod/STATUS.txt | 1 + artifacts/api-meta/prod/operations/1.list | 6 + artifacts/api-meta/prod/operations/1/18.json | 1 + artifacts/api-meta/prod/operations/1/240.json | 1 + artifacts/api-meta/prod/operations/1/71.json | 1 + artifacts/api-meta/prod/operations/1/92.json | 1 + artifacts/api-meta/prod/operations/1/93.json | 1 + artifacts/api-meta/prod/operations/1/94.json | 1 + artifacts/api-meta/prod/operations/100.list | 2 + .../api-meta/prod/operations/100/41.json | 1 + .../api-meta/prod/operations/100/42.json | 1 + artifacts/api-meta/prod/operations/110.list | 2 + .../api-meta/prod/operations/110/43.json | 1 + .../api-meta/prod/operations/110/44.json | 1 + artifacts/api-meta/prod/operations/111.list | 3 + .../api-meta/prod/operations/111/45.json | 1 + .../api-meta/prod/operations/111/46.json | 1 + .../api-meta/prod/operations/111/90.json | 1 + artifacts/api-meta/prod/operations/112.list | 3 + .../api-meta/prod/operations/112/84.json | 1 + .../api-meta/prod/operations/112/86.json | 1 + .../api-meta/prod/operations/112/87.json | 1 + artifacts/api-meta/prod/operations/113.list | 1 + .../api-meta/prod/operations/113/107.json | 1 + artifacts/api-meta/prod/operations/114.list | 0 artifacts/api-meta/prod/operations/115.list | 5 + .../api-meta/prod/operations/115/138.json | 1 + .../api-meta/prod/operations/115/139.json | 1 + .../api-meta/prod/operations/115/140.json | 1 + .../api-meta/prod/operations/115/141.json | 1 + .../api-meta/prod/operations/115/142.json | 1 + artifacts/api-meta/prod/operations/116.list | 11 + .../api-meta/prod/operations/116/148.json | 1 + .../api-meta/prod/operations/116/149.json | 1 + .../api-meta/prod/operations/116/160.json | 1 + .../api-meta/prod/operations/116/161.json | 1 + .../api-meta/prod/operations/116/162.json | 1 + .../api-meta/prod/operations/116/165.json | 1 + .../api-meta/prod/operations/116/166.json | 1 + .../api-meta/prod/operations/116/167.json | 1 + .../api-meta/prod/operations/116/168.json | 1 + .../api-meta/prod/operations/116/169.json | 1 + .../api-meta/prod/operations/116/170.json | 1 + artifacts/api-meta/prod/operations/117.list | 3 + .../api-meta/prod/operations/117/150.json | 1 + .../api-meta/prod/operations/117/151.json | 1 + .../api-meta/prod/operations/117/154.json | 1 + artifacts/api-meta/prod/operations/119.list | 5 + .../api-meta/prod/operations/119/175.json | 1 + .../api-meta/prod/operations/119/176.json | 1 + .../api-meta/prod/operations/119/177.json | 1 + .../api-meta/prod/operations/119/178.json | 1 + .../api-meta/prod/operations/119/180.json | 1 + artifacts/api-meta/prod/operations/12.list | 7 + artifacts/api-meta/prod/operations/12/1.json | 1 + artifacts/api-meta/prod/operations/12/2.json | 1 + artifacts/api-meta/prod/operations/12/3.json | 1 + artifacts/api-meta/prod/operations/12/4.json | 1 + artifacts/api-meta/prod/operations/12/5.json | 1 + artifacts/api-meta/prod/operations/12/6.json | 1 + artifacts/api-meta/prod/operations/12/7.json | 1 + artifacts/api-meta/prod/operations/120.list | 9 + .../api-meta/prod/operations/120/181.json | 1 + .../api-meta/prod/operations/120/182.json | 1 + .../api-meta/prod/operations/120/183.json | 1 + .../api-meta/prod/operations/120/184.json | 1 + .../api-meta/prod/operations/120/185.json | 1 + .../api-meta/prod/operations/120/186.json | 1 + .../api-meta/prod/operations/120/187.json | 1 + .../api-meta/prod/operations/120/188.json | 1 + .../api-meta/prod/operations/120/189.json | 1 + artifacts/api-meta/prod/operations/13.list | 2 + artifacts/api-meta/prod/operations/13/51.json | 1 + artifacts/api-meta/prod/operations/13/52.json | 1 + artifacts/api-meta/prod/operations/149.list | 5 + .../api-meta/prod/operations/149/202.json | 1 + .../api-meta/prod/operations/149/203.json | 1 + .../api-meta/prod/operations/149/204.json | 1 + .../api-meta/prod/operations/149/205.json | 1 + .../api-meta/prod/operations/149/206.json | 1 + artifacts/api-meta/prod/operations/150.list | 7 + .../api-meta/prod/operations/150/108.json | 1 + .../api-meta/prod/operations/150/109.json | 1 + .../api-meta/prod/operations/150/110.json | 1 + .../api-meta/prod/operations/150/173.json | 1 + .../api-meta/prod/operations/150/174.json | 1 + .../api-meta/prod/operations/150/179.json | 1 + .../api-meta/prod/operations/150/253.json | 1 + artifacts/api-meta/prod/operations/19.list | 6 + .../api-meta/prod/operations/19/136.json | 1 + .../api-meta/prod/operations/19/137.json | 1 + .../api-meta/prod/operations/19/143.json | 1 + .../api-meta/prod/operations/19/144.json | 1 + .../api-meta/prod/operations/19/207.json | 1 + .../api-meta/prod/operations/19/249.json | 1 + artifacts/api-meta/prod/operations/2.list | 5 + artifacts/api-meta/prod/operations/2/74.json | 1 + artifacts/api-meta/prod/operations/2/75.json | 1 + artifacts/api-meta/prod/operations/2/76.json | 1 + artifacts/api-meta/prod/operations/2/97.json | 1 + artifacts/api-meta/prod/operations/2/98.json | 1 + artifacts/api-meta/prod/operations/20.list | 4 + .../api-meta/prod/operations/20/118.json | 1 + .../api-meta/prod/operations/20/119.json | 1 + artifacts/api-meta/prod/operations/20/23.json | 1 + artifacts/api-meta/prod/operations/20/8.json | 1 + artifacts/api-meta/prod/operations/21.list | 6 + .../api-meta/prod/operations/21/112.json | 1 + .../api-meta/prod/operations/21/171.json | 1 + .../api-meta/prod/operations/21/172.json | 1 + artifacts/api-meta/prod/operations/21/24.json | 1 + .../api-meta/prod/operations/21/250.json | 1 + artifacts/api-meta/prod/operations/21/9.json | 1 + artifacts/api-meta/prod/operations/22.list | 4 + artifacts/api-meta/prod/operations/22/10.json | 1 + .../api-meta/prod/operations/22/111.json | 1 + artifacts/api-meta/prod/operations/22/25.json | 1 + .../api-meta/prod/operations/22/252.json | 1 + artifacts/api-meta/prod/operations/23.list | 5 + artifacts/api-meta/prod/operations/23/26.json | 1 + artifacts/api-meta/prod/operations/23/27.json | 1 + artifacts/api-meta/prod/operations/23/28.json | 1 + artifacts/api-meta/prod/operations/23/29.json | 1 + artifacts/api-meta/prod/operations/23/68.json | 1 + artifacts/api-meta/prod/operations/24.list | 0 artifacts/api-meta/prod/operations/25.list | 3 + .../api-meta/prod/operations/25/197.json | 1 + artifacts/api-meta/prod/operations/25/56.json | 1 + artifacts/api-meta/prod/operations/25/57.json | 1 + artifacts/api-meta/prod/operations/26.list | 4 + .../api-meta/prod/operations/26/208.json | 1 + .../api-meta/prod/operations/26/209.json | 1 + artifacts/api-meta/prod/operations/26/69.json | 1 + artifacts/api-meta/prod/operations/26/70.json | 1 + artifacts/api-meta/prod/operations/27.list | 5 + .../api-meta/prod/operations/27/100.json | 1 + .../api-meta/prod/operations/27/101.json | 1 + .../api-meta/prod/operations/27/102.json | 1 + .../api-meta/prod/operations/27/103.json | 1 + .../api-meta/prod/operations/27/104.json | 1 + artifacts/api-meta/prod/operations/28.list | 6 + .../api-meta/prod/operations/28/132.json | 1 + .../api-meta/prod/operations/28/133.json | 1 + .../api-meta/prod/operations/28/134.json | 1 + .../api-meta/prod/operations/28/135.json | 1 + .../api-meta/prod/operations/28/159.json | 1 + .../api-meta/prod/operations/28/164.json | 1 + artifacts/api-meta/prod/operations/29.list | 5 + .../api-meta/prod/operations/29/191.json | 1 + .../api-meta/prod/operations/29/192.json | 1 + .../api-meta/prod/operations/29/193.json | 1 + .../api-meta/prod/operations/29/195.json | 1 + .../api-meta/prod/operations/29/251.json | 1 + artifacts/api-meta/prod/operations/32.list | 2 + artifacts/api-meta/prod/operations/32/32.json | 1 + artifacts/api-meta/prod/operations/32/33.json | 1 + artifacts/api-meta/prod/operations/50.list | 6 + .../api-meta/prod/operations/50/128.json | 1 + .../api-meta/prod/operations/50/129.json | 1 + artifacts/api-meta/prod/operations/50/16.json | 1 + artifacts/api-meta/prod/operations/50/17.json | 1 + artifacts/api-meta/prod/operations/50/66.json | 1 + artifacts/api-meta/prod/operations/50/67.json | 1 + artifacts/api-meta/prod/operations/81.list | 2 + artifacts/api-meta/prod/operations/81/12.json | 1 + artifacts/api-meta/prod/operations/81/13.json | 1 + artifacts/api-meta/prod/operations/82.list | 2 + artifacts/api-meta/prod/operations/82/14.json | 1 + artifacts/api-meta/prod/operations/82/15.json | 1 + artifacts/api-meta/prod/operations/88.list | 2 + .../api-meta/prod/operations/88/105.json | 1 + artifacts/api-meta/prod/operations/88/99.json | 1 + artifacts/api-meta/prod/operations/89.list | 5 + .../api-meta/prod/operations/89/125.json | 1 + .../api-meta/prod/operations/89/145.json | 1 + .../api-meta/prod/operations/89/146.json | 1 + artifacts/api-meta/prod/operations/89/88.json | 1 + artifacts/api-meta/prod/operations/89/89.json | 1 + artifacts/api-meta/prod/operations/90.list | 7 + .../api-meta/prod/operations/90/114.json | 1 + .../api-meta/prod/operations/90/115.json | 1 + artifacts/api-meta/prod/operations/90/19.json | 1 + artifacts/api-meta/prod/operations/90/20.json | 1 + artifacts/api-meta/prod/operations/90/47.json | 1 + artifacts/api-meta/prod/operations/90/48.json | 1 + artifacts/api-meta/prod/operations/90/54.json | 1 + artifacts/api-meta/prod/operations/91.list | 2 + artifacts/api-meta/prod/operations/91/21.json | 1 + artifacts/api-meta/prod/operations/91/22.json | 1 + artifacts/api-meta/prod/operations/92.list | 7 + .../api-meta/prod/operations/92/190.json | 1 + .../api-meta/prod/operations/92/194.json | 1 + .../api-meta/prod/operations/92/196.json | 1 + .../api-meta/prod/operations/92/198.json | 1 + .../api-meta/prod/operations/92/199.json | 1 + .../api-meta/prod/operations/92/200.json | 1 + artifacts/api-meta/prod/operations/92/37.json | 1 + artifacts/api-meta/prod/operations/93.list | 5 + .../api-meta/prod/operations/93/106.json | 1 + .../api-meta/prod/operations/93/116.json | 1 + .../api-meta/prod/operations/93/117.json | 1 + artifacts/api-meta/prod/operations/93/38.json | 1 + artifacts/api-meta/prod/operations/93/39.json | 1 + artifacts/api-meta/prod/operations/94.list | 7 + .../api-meta/prod/operations/94/163.json | 1 + artifacts/api-meta/prod/operations/94/49.json | 1 + artifacts/api-meta/prod/operations/94/50.json | 1 + artifacts/api-meta/prod/operations/94/53.json | 1 + artifacts/api-meta/prod/operations/94/55.json | 1 + artifacts/api-meta/prod/operations/94/95.json | 1 + artifacts/api-meta/prod/operations/94/96.json | 1 + artifacts/api-meta/prod/operations/95.list | 6 + .../api-meta/prod/operations/95/120.json | 1 + .../api-meta/prod/operations/95/121.json | 1 + artifacts/api-meta/prod/operations/95/58.json | 1 + artifacts/api-meta/prod/operations/95/59.json | 1 + artifacts/api-meta/prod/operations/95/60.json | 1 + artifacts/api-meta/prod/operations/95/61.json | 1 + artifacts/api-meta/prod/operations/96.list | 6 + .../api-meta/prod/operations/96/122.json | 1 + .../api-meta/prod/operations/96/123.json | 1 + artifacts/api-meta/prod/operations/96/62.json | 1 + artifacts/api-meta/prod/operations/96/63.json | 1 + artifacts/api-meta/prod/operations/96/64.json | 1 + artifacts/api-meta/prod/operations/96/65.json | 1 + artifacts/api-meta/prod/operations/97.list | 2 + artifacts/api-meta/prod/operations/97/72.json | 1 + artifacts/api-meta/prod/operations/97/73.json | 1 + artifacts/api-meta/prod/operations/98.list | 6 + .../api-meta/prod/operations/98/130.json | 1 + .../api-meta/prod/operations/98/131.json | 1 + artifacts/api-meta/prod/operations/98/77.json | 1 + artifacts/api-meta/prod/operations/98/78.json | 1 + artifacts/api-meta/prod/operations/98/79.json | 1 + artifacts/api-meta/prod/operations/98/81.json | 1 + artifacts/api-meta/prod/operations/99.list | 5 + .../api-meta/prod/operations/99/126.json | 1 + .../api-meta/prod/operations/99/127.json | 1 + artifacts/api-meta/prod/operations/99/82.json | 1 + artifacts/api-meta/prod/operations/99/83.json | 1 + artifacts/api-meta/prod/operations/99/91.json | 1 + artifacts/api-meta/prod/services.json | 1 + artifacts/api-meta/prod/services/1.json | 1 + artifacts/api-meta/prod/services/100.json | 1 + artifacts/api-meta/prod/services/110.json | 1 + artifacts/api-meta/prod/services/111.json | 1 + artifacts/api-meta/prod/services/112.json | 1 + artifacts/api-meta/prod/services/113.json | 1 + artifacts/api-meta/prod/services/114.json | 1 + artifacts/api-meta/prod/services/115.json | 1 + artifacts/api-meta/prod/services/116.json | 1 + artifacts/api-meta/prod/services/117.json | 1 + artifacts/api-meta/prod/services/119.json | 1 + artifacts/api-meta/prod/services/12.json | 1 + artifacts/api-meta/prod/services/120.json | 1 + artifacts/api-meta/prod/services/13.json | 1 + artifacts/api-meta/prod/services/149.json | 1 + artifacts/api-meta/prod/services/150.json | 1 + artifacts/api-meta/prod/services/19.json | 1 + artifacts/api-meta/prod/services/2.json | 1 + artifacts/api-meta/prod/services/20.json | 1 + artifacts/api-meta/prod/services/21.json | 1 + artifacts/api-meta/prod/services/22.json | 1 + artifacts/api-meta/prod/services/23.json | 1 + artifacts/api-meta/prod/services/24.json | 1 + artifacts/api-meta/prod/services/25.json | 1 + artifacts/api-meta/prod/services/26.json | 1 + artifacts/api-meta/prod/services/27.json | 1 + artifacts/api-meta/prod/services/28.json | 1 + artifacts/api-meta/prod/services/29.json | 1 + artifacts/api-meta/prod/services/32.json | 1 + artifacts/api-meta/prod/services/50.json | 1 + artifacts/api-meta/prod/services/81.json | 1 + artifacts/api-meta/prod/services/82.json | 1 + artifacts/api-meta/prod/services/88.json | 1 + artifacts/api-meta/prod/services/89.json | 1 + artifacts/api-meta/prod/services/90.json | 1 + artifacts/api-meta/prod/services/91.json | 1 + artifacts/api-meta/prod/services/92.json | 1 + artifacts/api-meta/prod/services/93.json | 1 + artifacts/api-meta/prod/services/94.json | 1 + artifacts/api-meta/prod/services/95.json | 1 + artifacts/api-meta/prod/services/96.json | 1 + artifacts/api-meta/prod/services/97.json | 1 + artifacts/api-meta/prod/services/98.json | 1 + artifacts/api-meta/prod/services/99.json | 1 + artifacts/api-meta/test/STATUS.txt | 1 + artifacts/api-meta/test/STATUS_SUMMARY.txt | 1 + artifacts/api-meta/test/all_params.jsonl | 175 + artifacts/api-meta/test/all_params_index.json | 222 + artifacts/api-meta/test/anomalies.txt | 101 + artifacts/api-meta/test/operations/1.list | 6 + artifacts/api-meta/test/operations/1/18.json | 1 + artifacts/api-meta/test/operations/1/240.json | 1 + artifacts/api-meta/test/operations/1/71.json | 1 + artifacts/api-meta/test/operations/1/92.json | 1 + artifacts/api-meta/test/operations/1/93.json | 1 + artifacts/api-meta/test/operations/1/94.json | 1 + artifacts/api-meta/test/operations/100.list | 0 artifacts/api-meta/test/operations/110.list | 2 + .../api-meta/test/operations/110/43.json | 1 + .../api-meta/test/operations/110/44.json | 1 + artifacts/api-meta/test/operations/111.list | 3 + .../api-meta/test/operations/111/45.json | 1 + .../api-meta/test/operations/111/46.json | 1 + .../api-meta/test/operations/111/90.json | 1 + artifacts/api-meta/test/operations/112.list | 3 + .../api-meta/test/operations/112/84.json | 1 + .../api-meta/test/operations/112/86.json | 1 + .../api-meta/test/operations/112/87.json | 1 + artifacts/api-meta/test/operations/113.list | 1 + .../api-meta/test/operations/113/107.json | 1 + artifacts/api-meta/test/operations/114.list | 0 artifacts/api-meta/test/operations/115.list | 5 + .../api-meta/test/operations/115/138.json | 1 + .../api-meta/test/operations/115/139.json | 1 + .../api-meta/test/operations/115/140.json | 1 + .../api-meta/test/operations/115/141.json | 1 + .../api-meta/test/operations/115/142.json | 1 + artifacts/api-meta/test/operations/116.list | 11 + .../api-meta/test/operations/116/148.json | 1 + .../api-meta/test/operations/116/149.json | 1 + .../api-meta/test/operations/116/160.json | 1 + .../api-meta/test/operations/116/161.json | 1 + .../api-meta/test/operations/116/162.json | 1 + .../api-meta/test/operations/116/165.json | 1 + .../api-meta/test/operations/116/166.json | 1 + .../api-meta/test/operations/116/167.json | 1 + .../api-meta/test/operations/116/168.json | 1 + .../api-meta/test/operations/116/169.json | 1 + .../api-meta/test/operations/116/170.json | 1 + artifacts/api-meta/test/operations/117.list | 3 + .../api-meta/test/operations/117/150.json | 1 + .../api-meta/test/operations/117/151.json | 1 + .../api-meta/test/operations/117/154.json | 1 + artifacts/api-meta/test/operations/119.list | 5 + .../api-meta/test/operations/119/175.json | 1 + .../api-meta/test/operations/119/176.json | 1 + .../api-meta/test/operations/119/177.json | 1 + .../api-meta/test/operations/119/178.json | 1 + .../api-meta/test/operations/119/180.json | 1 + artifacts/api-meta/test/operations/12.list | 7 + artifacts/api-meta/test/operations/12/1.json | 1 + artifacts/api-meta/test/operations/12/2.json | 1 + artifacts/api-meta/test/operations/12/3.json | 1 + artifacts/api-meta/test/operations/12/4.json | 1 + artifacts/api-meta/test/operations/12/5.json | 1 + artifacts/api-meta/test/operations/12/6.json | 1 + artifacts/api-meta/test/operations/12/7.json | 1 + artifacts/api-meta/test/operations/120.list | 9 + .../api-meta/test/operations/120/181.json | 1 + .../api-meta/test/operations/120/182.json | 1 + .../api-meta/test/operations/120/183.json | 1 + .../api-meta/test/operations/120/184.json | 1 + .../api-meta/test/operations/120/185.json | 1 + .../api-meta/test/operations/120/186.json | 1 + .../api-meta/test/operations/120/187.json | 1 + .../api-meta/test/operations/120/188.json | 1 + .../api-meta/test/operations/120/189.json | 1 + artifacts/api-meta/test/operations/13.list | 2 + artifacts/api-meta/test/operations/13/51.json | 1 + artifacts/api-meta/test/operations/13/52.json | 1 + artifacts/api-meta/test/operations/149.list | 5 + .../api-meta/test/operations/149/202.json | 1 + .../api-meta/test/operations/149/203.json | 1 + .../api-meta/test/operations/149/204.json | 1 + .../api-meta/test/operations/149/205.json | 1 + .../api-meta/test/operations/149/206.json | 1 + artifacts/api-meta/test/operations/150.list | 7 + .../api-meta/test/operations/150/108.json | 1 + .../api-meta/test/operations/150/109.json | 1 + .../api-meta/test/operations/150/110.json | 1 + .../api-meta/test/operations/150/173.json | 1 + .../api-meta/test/operations/150/174.json | 1 + .../api-meta/test/operations/150/179.json | 1 + .../api-meta/test/operations/150/253.json | 1 + artifacts/api-meta/test/operations/19.list | 6 + .../api-meta/test/operations/19/136.json | 1 + .../api-meta/test/operations/19/137.json | 1 + .../api-meta/test/operations/19/143.json | 1 + .../api-meta/test/operations/19/144.json | 1 + .../api-meta/test/operations/19/207.json | 1 + .../api-meta/test/operations/19/249.json | 1 + artifacts/api-meta/test/operations/2.list | 5 + artifacts/api-meta/test/operations/2/74.json | 1 + artifacts/api-meta/test/operations/2/75.json | 1 + artifacts/api-meta/test/operations/2/76.json | 1 + artifacts/api-meta/test/operations/2/97.json | 1 + artifacts/api-meta/test/operations/2/98.json | 1 + artifacts/api-meta/test/operations/20.list | 4 + .../api-meta/test/operations/20/118.json | 1 + .../api-meta/test/operations/20/119.json | 1 + artifacts/api-meta/test/operations/20/23.json | 1 + artifacts/api-meta/test/operations/20/8.json | 1 + artifacts/api-meta/test/operations/21.list | 6 + .../api-meta/test/operations/21/112.json | 1 + .../api-meta/test/operations/21/171.json | 1 + .../api-meta/test/operations/21/172.json | 1 + artifacts/api-meta/test/operations/21/24.json | 1 + .../api-meta/test/operations/21/250.json | 1 + artifacts/api-meta/test/operations/21/9.json | 1 + artifacts/api-meta/test/operations/22.list | 4 + artifacts/api-meta/test/operations/22/10.json | 1 + .../api-meta/test/operations/22/111.json | 1 + artifacts/api-meta/test/operations/22/25.json | 1 + .../api-meta/test/operations/22/252.json | 1 + artifacts/api-meta/test/operations/23.list | 5 + artifacts/api-meta/test/operations/23/26.json | 1 + artifacts/api-meta/test/operations/23/27.json | 1 + artifacts/api-meta/test/operations/23/28.json | 1 + artifacts/api-meta/test/operations/23/29.json | 1 + artifacts/api-meta/test/operations/23/68.json | 1 + artifacts/api-meta/test/operations/24.list | 0 artifacts/api-meta/test/operations/25.list | 3 + .../api-meta/test/operations/25/197.json | 1 + artifacts/api-meta/test/operations/25/56.json | 1 + artifacts/api-meta/test/operations/25/57.json | 1 + artifacts/api-meta/test/operations/26.list | 4 + .../api-meta/test/operations/26/208.json | 1 + .../api-meta/test/operations/26/209.json | 1 + artifacts/api-meta/test/operations/26/69.json | 1 + artifacts/api-meta/test/operations/26/70.json | 1 + artifacts/api-meta/test/operations/27.list | 5 + .../api-meta/test/operations/27/100.json | 1 + .../api-meta/test/operations/27/101.json | 1 + .../api-meta/test/operations/27/102.json | 1 + .../api-meta/test/operations/27/103.json | 1 + .../api-meta/test/operations/27/104.json | 1 + artifacts/api-meta/test/operations/28.list | 6 + .../api-meta/test/operations/28/132.json | 1 + .../api-meta/test/operations/28/133.json | 1 + .../api-meta/test/operations/28/134.json | 1 + .../api-meta/test/operations/28/135.json | 1 + .../api-meta/test/operations/28/159.json | 1 + .../api-meta/test/operations/28/164.json | 1 + artifacts/api-meta/test/operations/29.list | 5 + .../api-meta/test/operations/29/191.json | 1 + .../api-meta/test/operations/29/192.json | 1 + .../api-meta/test/operations/29/193.json | 1 + .../api-meta/test/operations/29/195.json | 1 + .../api-meta/test/operations/29/251.json | 1 + artifacts/api-meta/test/operations/32.list | 0 artifacts/api-meta/test/operations/50.list | 6 + .../api-meta/test/operations/50/128.json | 1 + .../api-meta/test/operations/50/129.json | 1 + artifacts/api-meta/test/operations/50/16.json | 1 + artifacts/api-meta/test/operations/50/17.json | 1 + artifacts/api-meta/test/operations/50/66.json | 1 + artifacts/api-meta/test/operations/50/67.json | 1 + artifacts/api-meta/test/operations/81.list | 2 + artifacts/api-meta/test/operations/81/12.json | 1 + artifacts/api-meta/test/operations/81/13.json | 1 + artifacts/api-meta/test/operations/82.list | 2 + artifacts/api-meta/test/operations/82/14.json | 1 + artifacts/api-meta/test/operations/82/15.json | 1 + artifacts/api-meta/test/operations/88.list | 2 + .../api-meta/test/operations/88/105.json | 1 + artifacts/api-meta/test/operations/88/99.json | 1 + artifacts/api-meta/test/operations/89.list | 5 + .../api-meta/test/operations/89/125.json | 1 + .../api-meta/test/operations/89/145.json | 1 + .../api-meta/test/operations/89/146.json | 1 + artifacts/api-meta/test/operations/89/88.json | 1 + artifacts/api-meta/test/operations/89/89.json | 1 + artifacts/api-meta/test/operations/90.list | 11 + .../api-meta/test/operations/90/114.json | 1 + .../api-meta/test/operations/90/115.json | 1 + artifacts/api-meta/test/operations/90/19.json | 1 + artifacts/api-meta/test/operations/90/20.json | 1 + .../api-meta/test/operations/90/241.json | 1 + .../api-meta/test/operations/90/244.json | 1 + .../api-meta/test/operations/90/245.json | 1 + .../api-meta/test/operations/90/246.json | 1 + artifacts/api-meta/test/operations/90/47.json | 1 + artifacts/api-meta/test/operations/90/48.json | 1 + artifacts/api-meta/test/operations/90/54.json | 1 + artifacts/api-meta/test/operations/91.list | 2 + artifacts/api-meta/test/operations/91/21.json | 1 + artifacts/api-meta/test/operations/91/22.json | 1 + artifacts/api-meta/test/operations/92.list | 8 + .../api-meta/test/operations/92/190.json | 1 + .../api-meta/test/operations/92/194.json | 1 + .../api-meta/test/operations/92/196.json | 1 + .../api-meta/test/operations/92/198.json | 1 + .../api-meta/test/operations/92/199.json | 1 + .../api-meta/test/operations/92/200.json | 1 + .../api-meta/test/operations/92/201.json | 1 + artifacts/api-meta/test/operations/92/37.json | 1 + artifacts/api-meta/test/operations/93.list | 5 + .../api-meta/test/operations/93/106.json | 1 + .../api-meta/test/operations/93/116.json | 1 + .../api-meta/test/operations/93/117.json | 1 + artifacts/api-meta/test/operations/93/38.json | 1 + artifacts/api-meta/test/operations/93/39.json | 1 + artifacts/api-meta/test/operations/94.list | 7 + .../api-meta/test/operations/94/163.json | 1 + artifacts/api-meta/test/operations/94/49.json | 1 + artifacts/api-meta/test/operations/94/50.json | 1 + artifacts/api-meta/test/operations/94/53.json | 1 + artifacts/api-meta/test/operations/94/55.json | 1 + artifacts/api-meta/test/operations/94/95.json | 1 + artifacts/api-meta/test/operations/94/96.json | 1 + artifacts/api-meta/test/operations/95.list | 6 + .../api-meta/test/operations/95/120.json | 1 + .../api-meta/test/operations/95/121.json | 1 + artifacts/api-meta/test/operations/95/58.json | 1 + artifacts/api-meta/test/operations/95/59.json | 1 + artifacts/api-meta/test/operations/95/60.json | 1 + artifacts/api-meta/test/operations/95/61.json | 1 + artifacts/api-meta/test/operations/96.list | 6 + .../api-meta/test/operations/96/122.json | 1 + .../api-meta/test/operations/96/123.json | 1 + artifacts/api-meta/test/operations/96/62.json | 1 + artifacts/api-meta/test/operations/96/63.json | 1 + artifacts/api-meta/test/operations/96/64.json | 1 + artifacts/api-meta/test/operations/96/65.json | 1 + artifacts/api-meta/test/operations/97.list | 2 + artifacts/api-meta/test/operations/97/72.json | 1 + artifacts/api-meta/test/operations/97/73.json | 1 + artifacts/api-meta/test/operations/98.list | 6 + .../api-meta/test/operations/98/130.json | 1 + .../api-meta/test/operations/98/131.json | 1 + artifacts/api-meta/test/operations/98/77.json | 1 + artifacts/api-meta/test/operations/98/78.json | 1 + artifacts/api-meta/test/operations/98/79.json | 1 + artifacts/api-meta/test/operations/98/81.json | 1 + artifacts/api-meta/test/operations/99.list | 5 + .../api-meta/test/operations/99/126.json | 1 + .../api-meta/test/operations/99/127.json | 1 + artifacts/api-meta/test/operations/99/82.json | 1 + artifacts/api-meta/test/operations/99/83.json | 1 + artifacts/api-meta/test/operations/99/91.json | 1 + artifacts/api-meta/test/services.json | 1 + artifacts/api-meta/test/services/1.json | 1 + artifacts/api-meta/test/services/100.json | 1 + artifacts/api-meta/test/services/110.json | 1 + artifacts/api-meta/test/services/111.json | 1 + artifacts/api-meta/test/services/112.json | 1 + artifacts/api-meta/test/services/113.json | 1 + artifacts/api-meta/test/services/114.json | 1 + artifacts/api-meta/test/services/115.json | 1 + artifacts/api-meta/test/services/116.json | 1 + artifacts/api-meta/test/services/117.json | 1 + artifacts/api-meta/test/services/119.json | 1 + artifacts/api-meta/test/services/12.json | 1 + artifacts/api-meta/test/services/120.json | 1 + artifacts/api-meta/test/services/13.json | 1 + artifacts/api-meta/test/services/149.json | 1 + artifacts/api-meta/test/services/150.json | 1 + artifacts/api-meta/test/services/19.json | 1 + artifacts/api-meta/test/services/2.json | 1 + artifacts/api-meta/test/services/20.json | 1 + artifacts/api-meta/test/services/21.json | 1 + artifacts/api-meta/test/services/22.json | 1 + artifacts/api-meta/test/services/23.json | 1 + artifacts/api-meta/test/services/24.json | 1 + artifacts/api-meta/test/services/25.json | 1 + artifacts/api-meta/test/services/26.json | 1 + artifacts/api-meta/test/services/27.json | 1 + artifacts/api-meta/test/services/28.json | 1 + artifacts/api-meta/test/services/29.json | 1 + artifacts/api-meta/test/services/32.json | 1 + artifacts/api-meta/test/services/50.json | 1 + artifacts/api-meta/test/services/81.json | 1 + artifacts/api-meta/test/services/82.json | 1 + artifacts/api-meta/test/services/88.json | 1 + artifacts/api-meta/test/services/89.json | 1 + artifacts/api-meta/test/services/90.json | 1 + artifacts/api-meta/test/services/91.json | 1 + artifacts/api-meta/test/services/92.json | 1 + artifacts/api-meta/test/services/93.json | 1 + artifacts/api-meta/test/services/94.json | 1 + artifacts/api-meta/test/services/95.json | 1 + artifacts/api-meta/test/services/96.json | 1 + artifacts/api-meta/test/services/97.json | 1 + artifacts/api-meta/test/services/98.json | 1 + artifacts/api-meta/test/services/99.json | 1 + artifacts/output_inventory/errors.json | 1 + .../running_suspended_instances.json | 6348 +++++++++++++++++ ...ning_suspended_output_fields_for_docs.json | 636 ++ .../running_suspended_outputs_by_service.json | 778 ++ check_ops.py | 57 + cloud-dashboard/.gitignore | 3 + cloud-dashboard/Dockerfile | 8 + cloud-dashboard/k8s/deployment.yaml | 28 + cloud-dashboard/k8s/ingress.yaml | 20 + cloud-dashboard/k8s/service.yaml | 11 + cloud-dashboard/main.py | 220 + cloud-dashboard/requirements.txt | 3 + cloud-dashboard/static/index.html | 894 +++ instance_fca3f912.json | 1 + mkdocs.yml | 58 + name_check.txt | 18 + prompt_for_ds_pro.md | 226 + prompt_for_opus48.md | 289 + scripts/check_cloud_instances.py | 338 + scripts/deploy-dev.sh | 9 + scripts/package_release.sh | 69 + scripts/publish-doc-page.sh | 196 + scripts/publish-docs.sh | 30 + scripts/s3_notification_example.sh | 91 + services.tsv | 24 + services_raw.json | 1 + state_keys_instances.json | 1254 ++++ state_keys_progress.json | 58 + state_keys_progress.txt | 1 + state_vault_progress.json | 22 + state_vault_services.json | 30 + svcs.json | 411 ++ 940 files changed, 14409 insertions(+) create mode 100644 .github/copilot-instructions.md create mode 100644 .github/pravila.md create mode 100644 .github/workflows/build-registry-image.yml create mode 100644 .github/workflows/publish-docs.yml create mode 100644 01_generate_yamls.sh create mode 100644 REPO_CONTENTS.md create mode 100644 artifacts/api-meta/dev/STATUS.txt create mode 100644 artifacts/api-meta/dev/operations/1.list create mode 100644 artifacts/api-meta/dev/operations/1/18.json create mode 100644 artifacts/api-meta/dev/operations/1/240.json create mode 100644 artifacts/api-meta/dev/operations/1/71.json create mode 100644 artifacts/api-meta/dev/operations/1/92.json create mode 100644 artifacts/api-meta/dev/operations/1/93.json create mode 100644 artifacts/api-meta/dev/operations/1/94.json create mode 100644 artifacts/api-meta/dev/operations/100.list create mode 100644 artifacts/api-meta/dev/operations/100/41.json create mode 100644 artifacts/api-meta/dev/operations/100/42.json create mode 100644 artifacts/api-meta/dev/operations/109.list create mode 100644 artifacts/api-meta/dev/operations/110.list create mode 100644 artifacts/api-meta/dev/operations/110/43.json create mode 100644 artifacts/api-meta/dev/operations/110/44.json create mode 100644 artifacts/api-meta/dev/operations/111.list create mode 100644 artifacts/api-meta/dev/operations/111/45.json create mode 100644 artifacts/api-meta/dev/operations/111/46.json create mode 100644 artifacts/api-meta/dev/operations/111/90.json create mode 100644 artifacts/api-meta/dev/operations/112.list create mode 100644 artifacts/api-meta/dev/operations/112/84.json create mode 100644 artifacts/api-meta/dev/operations/112/86.json create mode 100644 artifacts/api-meta/dev/operations/112/87.json create mode 100644 artifacts/api-meta/dev/operations/113.list create mode 100644 artifacts/api-meta/dev/operations/113/107.json create mode 100644 artifacts/api-meta/dev/operations/115.list create mode 100644 artifacts/api-meta/dev/operations/115/138.json create mode 100644 artifacts/api-meta/dev/operations/115/139.json create mode 100644 artifacts/api-meta/dev/operations/115/140.json create mode 100644 artifacts/api-meta/dev/operations/115/141.json create mode 100644 artifacts/api-meta/dev/operations/115/142.json create mode 100644 artifacts/api-meta/dev/operations/115/242.json create mode 100644 artifacts/api-meta/dev/operations/115/243.json create mode 100644 artifacts/api-meta/dev/operations/115/247.json create mode 100644 artifacts/api-meta/dev/operations/115/248.json create mode 100644 artifacts/api-meta/dev/operations/116.list create mode 100644 artifacts/api-meta/dev/operations/116/148.json create mode 100644 artifacts/api-meta/dev/operations/116/149.json create mode 100644 artifacts/api-meta/dev/operations/116/160.json create mode 100644 artifacts/api-meta/dev/operations/116/161.json create mode 100644 artifacts/api-meta/dev/operations/116/162.json create mode 100644 artifacts/api-meta/dev/operations/116/165.json create mode 100644 artifacts/api-meta/dev/operations/116/166.json create mode 100644 artifacts/api-meta/dev/operations/116/167.json create mode 100644 artifacts/api-meta/dev/operations/116/168.json create mode 100644 artifacts/api-meta/dev/operations/116/169.json create mode 100644 artifacts/api-meta/dev/operations/116/170.json create mode 100644 artifacts/api-meta/dev/operations/119.list create mode 100644 artifacts/api-meta/dev/operations/119/175.json create mode 100644 artifacts/api-meta/dev/operations/119/176.json create mode 100644 artifacts/api-meta/dev/operations/119/177.json create mode 100644 artifacts/api-meta/dev/operations/119/178.json create mode 100644 artifacts/api-meta/dev/operations/119/180.json create mode 100644 artifacts/api-meta/dev/operations/12.list create mode 100644 artifacts/api-meta/dev/operations/12/1.json create mode 100644 artifacts/api-meta/dev/operations/12/2.json create mode 100644 artifacts/api-meta/dev/operations/12/3.json create mode 100644 artifacts/api-meta/dev/operations/12/4.json create mode 100644 artifacts/api-meta/dev/operations/12/5.json create mode 100644 artifacts/api-meta/dev/operations/12/6.json create mode 100644 artifacts/api-meta/dev/operations/12/7.json create mode 100644 artifacts/api-meta/dev/operations/120.list create mode 100644 artifacts/api-meta/dev/operations/120/181.json create mode 100644 artifacts/api-meta/dev/operations/120/182.json create mode 100644 artifacts/api-meta/dev/operations/120/183.json create mode 100644 artifacts/api-meta/dev/operations/120/184.json create mode 100644 artifacts/api-meta/dev/operations/120/185.json create mode 100644 artifacts/api-meta/dev/operations/120/186.json create mode 100644 artifacts/api-meta/dev/operations/120/187.json create mode 100644 artifacts/api-meta/dev/operations/120/188.json create mode 100644 artifacts/api-meta/dev/operations/120/189.json create mode 100644 artifacts/api-meta/dev/operations/13.list create mode 100644 artifacts/api-meta/dev/operations/13/51.json create mode 100644 artifacts/api-meta/dev/operations/13/52.json create mode 100644 artifacts/api-meta/dev/operations/149.list create mode 100644 artifacts/api-meta/dev/operations/149/202.json create mode 100644 artifacts/api-meta/dev/operations/149/203.json create mode 100644 artifacts/api-meta/dev/operations/149/204.json create mode 100644 artifacts/api-meta/dev/operations/149/205.json create mode 100644 artifacts/api-meta/dev/operations/149/206.json create mode 100644 artifacts/api-meta/dev/operations/150.list create mode 100644 artifacts/api-meta/dev/operations/150/108.json create mode 100644 artifacts/api-meta/dev/operations/150/109.json create mode 100644 artifacts/api-meta/dev/operations/150/110.json create mode 100644 artifacts/api-meta/dev/operations/150/173.json create mode 100644 artifacts/api-meta/dev/operations/150/174.json create mode 100644 artifacts/api-meta/dev/operations/150/179.json create mode 100644 artifacts/api-meta/dev/operations/150/253.json create mode 100644 artifacts/api-meta/dev/operations/151.list create mode 100644 artifacts/api-meta/dev/operations/151/210.json create mode 100644 artifacts/api-meta/dev/operations/151/211.json create mode 100644 artifacts/api-meta/dev/operations/151/212.json create mode 100644 artifacts/api-meta/dev/operations/151/213.json create mode 100644 artifacts/api-meta/dev/operations/151/214.json create mode 100644 artifacts/api-meta/dev/operations/151/215.json create mode 100644 artifacts/api-meta/dev/operations/151/216.json create mode 100644 artifacts/api-meta/dev/operations/151/230.json create mode 100644 artifacts/api-meta/dev/operations/151/231.json create mode 100644 artifacts/api-meta/dev/operations/151/232.json create mode 100644 artifacts/api-meta/dev/operations/151/233.json create mode 100644 artifacts/api-meta/dev/operations/151/234.json create mode 100644 artifacts/api-meta/dev/operations/151/236.json create mode 100644 artifacts/api-meta/dev/operations/151/237.json create mode 100644 artifacts/api-meta/dev/operations/151/238.json create mode 100644 artifacts/api-meta/dev/operations/151/239.json create mode 100644 artifacts/api-meta/dev/operations/152.list create mode 100644 artifacts/api-meta/dev/operations/152/217.json create mode 100644 artifacts/api-meta/dev/operations/152/218.json create mode 100644 artifacts/api-meta/dev/operations/152/219.json create mode 100644 artifacts/api-meta/dev/operations/152/220.json create mode 100644 artifacts/api-meta/dev/operations/152/221.json create mode 100644 artifacts/api-meta/dev/operations/152/222.json create mode 100644 artifacts/api-meta/dev/operations/152/223.json create mode 100644 artifacts/api-meta/dev/operations/152/224.json create mode 100644 artifacts/api-meta/dev/operations/152/225.json create mode 100644 artifacts/api-meta/dev/operations/152/226.json create mode 100644 artifacts/api-meta/dev/operations/152/227.json create mode 100644 artifacts/api-meta/dev/operations/153.list create mode 100644 artifacts/api-meta/dev/operations/153/229.json create mode 100644 artifacts/api-meta/dev/operations/153/235.json create mode 100644 artifacts/api-meta/dev/operations/19.list create mode 100644 artifacts/api-meta/dev/operations/19/136.json create mode 100644 artifacts/api-meta/dev/operations/19/137.json create mode 100644 artifacts/api-meta/dev/operations/19/143.json create mode 100644 artifacts/api-meta/dev/operations/19/144.json create mode 100644 artifacts/api-meta/dev/operations/19/207.json create mode 100644 artifacts/api-meta/dev/operations/19/249.json create mode 100644 artifacts/api-meta/dev/operations/2.list create mode 100644 artifacts/api-meta/dev/operations/2/74.json create mode 100644 artifacts/api-meta/dev/operations/2/75.json create mode 100644 artifacts/api-meta/dev/operations/2/76.json create mode 100644 artifacts/api-meta/dev/operations/2/97.json create mode 100644 artifacts/api-meta/dev/operations/2/98.json create mode 100644 artifacts/api-meta/dev/operations/20.list create mode 100644 artifacts/api-meta/dev/operations/20/118.json create mode 100644 artifacts/api-meta/dev/operations/20/119.json create mode 100644 artifacts/api-meta/dev/operations/20/23.json create mode 100644 artifacts/api-meta/dev/operations/20/8.json create mode 100644 artifacts/api-meta/dev/operations/21.list create mode 100644 artifacts/api-meta/dev/operations/21/112.json create mode 100644 artifacts/api-meta/dev/operations/21/171.json create mode 100644 artifacts/api-meta/dev/operations/21/172.json create mode 100644 artifacts/api-meta/dev/operations/21/24.json create mode 100644 artifacts/api-meta/dev/operations/21/250.json create mode 100644 artifacts/api-meta/dev/operations/21/9.json create mode 100644 artifacts/api-meta/dev/operations/22.list create mode 100644 artifacts/api-meta/dev/operations/22/10.json create mode 100644 artifacts/api-meta/dev/operations/22/111.json create mode 100644 artifacts/api-meta/dev/operations/22/25.json create mode 100644 artifacts/api-meta/dev/operations/22/252.json create mode 100644 artifacts/api-meta/dev/operations/23.list create mode 100644 artifacts/api-meta/dev/operations/23/26.json create mode 100644 artifacts/api-meta/dev/operations/23/27.json create mode 100644 artifacts/api-meta/dev/operations/23/28.json create mode 100644 artifacts/api-meta/dev/operations/23/29.json create mode 100644 artifacts/api-meta/dev/operations/23/68.json create mode 100644 artifacts/api-meta/dev/operations/24.list create mode 100644 artifacts/api-meta/dev/operations/25.list create mode 100644 artifacts/api-meta/dev/operations/25/197.json create mode 100644 artifacts/api-meta/dev/operations/25/56.json create mode 100644 artifacts/api-meta/dev/operations/25/57.json create mode 100644 artifacts/api-meta/dev/operations/26.list create mode 100644 artifacts/api-meta/dev/operations/26/208.json create mode 100644 artifacts/api-meta/dev/operations/26/209.json create mode 100644 artifacts/api-meta/dev/operations/26/69.json create mode 100644 artifacts/api-meta/dev/operations/26/70.json create mode 100644 artifacts/api-meta/dev/operations/27.list create mode 100644 artifacts/api-meta/dev/operations/27/100.json create mode 100644 artifacts/api-meta/dev/operations/27/101.json create mode 100644 artifacts/api-meta/dev/operations/27/102.json create mode 100644 artifacts/api-meta/dev/operations/27/103.json create mode 100644 artifacts/api-meta/dev/operations/27/104.json create mode 100644 artifacts/api-meta/dev/operations/28.list create mode 100644 artifacts/api-meta/dev/operations/28/132.json create mode 100644 artifacts/api-meta/dev/operations/28/133.json create mode 100644 artifacts/api-meta/dev/operations/28/134.json create mode 100644 artifacts/api-meta/dev/operations/28/135.json create mode 100644 artifacts/api-meta/dev/operations/28/159.json create mode 100644 artifacts/api-meta/dev/operations/28/164.json create mode 100644 artifacts/api-meta/dev/operations/29.list create mode 100644 artifacts/api-meta/dev/operations/29/191.json create mode 100644 artifacts/api-meta/dev/operations/29/192.json create mode 100644 artifacts/api-meta/dev/operations/29/193.json create mode 100644 artifacts/api-meta/dev/operations/29/195.json create mode 100644 artifacts/api-meta/dev/operations/29/251.json create mode 100644 artifacts/api-meta/dev/operations/32.list create mode 100644 artifacts/api-meta/dev/operations/32/32.json create mode 100644 artifacts/api-meta/dev/operations/32/33.json create mode 100644 artifacts/api-meta/dev/operations/50.list create mode 100644 artifacts/api-meta/dev/operations/50/128.json create mode 100644 artifacts/api-meta/dev/operations/50/129.json create mode 100644 artifacts/api-meta/dev/operations/50/16.json create mode 100644 artifacts/api-meta/dev/operations/50/17.json create mode 100644 artifacts/api-meta/dev/operations/50/66.json create mode 100644 artifacts/api-meta/dev/operations/50/67.json create mode 100644 artifacts/api-meta/dev/operations/81.list create mode 100644 artifacts/api-meta/dev/operations/81/12.json create mode 100644 artifacts/api-meta/dev/operations/81/13.json create mode 100644 artifacts/api-meta/dev/operations/82.list create mode 100644 artifacts/api-meta/dev/operations/82/14.json create mode 100644 artifacts/api-meta/dev/operations/82/15.json create mode 100644 artifacts/api-meta/dev/operations/88.list create mode 100644 artifacts/api-meta/dev/operations/88/105.json create mode 100644 artifacts/api-meta/dev/operations/88/99.json create mode 100644 artifacts/api-meta/dev/operations/89.list create mode 100644 artifacts/api-meta/dev/operations/89/125.json create mode 100644 artifacts/api-meta/dev/operations/89/145.json create mode 100644 artifacts/api-meta/dev/operations/89/146.json create mode 100644 artifacts/api-meta/dev/operations/89/88.json create mode 100644 artifacts/api-meta/dev/operations/89/89.json create mode 100644 artifacts/api-meta/dev/operations/90.list create mode 100644 artifacts/api-meta/dev/operations/90/114.json create mode 100644 artifacts/api-meta/dev/operations/90/115.json create mode 100644 artifacts/api-meta/dev/operations/90/19.json create mode 100644 artifacts/api-meta/dev/operations/90/20.json create mode 100644 artifacts/api-meta/dev/operations/90/241.json create mode 100644 artifacts/api-meta/dev/operations/90/244.json create mode 100644 artifacts/api-meta/dev/operations/90/245.json create mode 100644 artifacts/api-meta/dev/operations/90/246.json create mode 100644 artifacts/api-meta/dev/operations/90/47.json create mode 100644 artifacts/api-meta/dev/operations/90/48.json create mode 100644 artifacts/api-meta/dev/operations/90/54.json create mode 100644 artifacts/api-meta/dev/operations/91.list create mode 100644 artifacts/api-meta/dev/operations/91/21.json create mode 100644 artifacts/api-meta/dev/operations/91/22.json create mode 100644 artifacts/api-meta/dev/operations/92.list create mode 100644 artifacts/api-meta/dev/operations/92/190.json create mode 100644 artifacts/api-meta/dev/operations/92/194.json create mode 100644 artifacts/api-meta/dev/operations/92/196.json create mode 100644 artifacts/api-meta/dev/operations/92/198.json create mode 100644 artifacts/api-meta/dev/operations/92/199.json create mode 100644 artifacts/api-meta/dev/operations/92/200.json create mode 100644 artifacts/api-meta/dev/operations/92/201.json create mode 100644 artifacts/api-meta/dev/operations/92/37.json create mode 100644 artifacts/api-meta/dev/operations/93.list create mode 100644 artifacts/api-meta/dev/operations/93/106.json create mode 100644 artifacts/api-meta/dev/operations/93/116.json create mode 100644 artifacts/api-meta/dev/operations/93/117.json create mode 100644 artifacts/api-meta/dev/operations/93/38.json create mode 100644 artifacts/api-meta/dev/operations/93/39.json create mode 100644 artifacts/api-meta/dev/operations/94.list create mode 100644 artifacts/api-meta/dev/operations/94/163.json create mode 100644 artifacts/api-meta/dev/operations/94/49.json create mode 100644 artifacts/api-meta/dev/operations/94/50.json create mode 100644 artifacts/api-meta/dev/operations/94/53.json create mode 100644 artifacts/api-meta/dev/operations/94/55.json create mode 100644 artifacts/api-meta/dev/operations/94/95.json create mode 100644 artifacts/api-meta/dev/operations/94/96.json create mode 100644 artifacts/api-meta/dev/operations/95.list create mode 100644 artifacts/api-meta/dev/operations/95/120.json create mode 100644 artifacts/api-meta/dev/operations/95/121.json create mode 100644 artifacts/api-meta/dev/operations/95/58.json create mode 100644 artifacts/api-meta/dev/operations/95/59.json create mode 100644 artifacts/api-meta/dev/operations/95/60.json create mode 100644 artifacts/api-meta/dev/operations/95/61.json create mode 100644 artifacts/api-meta/dev/operations/96.list create mode 100644 artifacts/api-meta/dev/operations/96/122.json create mode 100644 artifacts/api-meta/dev/operations/96/123.json create mode 100644 artifacts/api-meta/dev/operations/96/62.json create mode 100644 artifacts/api-meta/dev/operations/96/63.json create mode 100644 artifacts/api-meta/dev/operations/96/64.json create mode 100644 artifacts/api-meta/dev/operations/96/65.json create mode 100644 artifacts/api-meta/dev/operations/97.list create mode 100644 artifacts/api-meta/dev/operations/97/72.json create mode 100644 artifacts/api-meta/dev/operations/97/73.json create mode 100644 artifacts/api-meta/dev/operations/98.list create mode 100644 artifacts/api-meta/dev/operations/98/130.json create mode 100644 artifacts/api-meta/dev/operations/98/131.json create mode 100644 artifacts/api-meta/dev/operations/98/77.json create mode 100644 artifacts/api-meta/dev/operations/98/78.json create mode 100644 artifacts/api-meta/dev/operations/98/79.json create mode 100644 artifacts/api-meta/dev/operations/98/81.json create mode 100644 artifacts/api-meta/dev/operations/99.list create mode 100644 artifacts/api-meta/dev/operations/99/126.json create mode 100644 artifacts/api-meta/dev/operations/99/127.json create mode 100644 artifacts/api-meta/dev/operations/99/82.json create mode 100644 artifacts/api-meta/dev/operations/99/83.json create mode 100644 artifacts/api-meta/dev/operations/99/91.json create mode 100644 artifacts/api-meta/dev/services.json create mode 100644 artifacts/api-meta/dev/services/1.json create mode 100644 artifacts/api-meta/dev/services/100.json create mode 100644 artifacts/api-meta/dev/services/109.json create mode 100644 artifacts/api-meta/dev/services/110.json create mode 100644 artifacts/api-meta/dev/services/111.json create mode 100644 artifacts/api-meta/dev/services/112.json create mode 100644 artifacts/api-meta/dev/services/113.json create mode 100644 artifacts/api-meta/dev/services/115.json create mode 100644 artifacts/api-meta/dev/services/116.json create mode 100644 artifacts/api-meta/dev/services/119.json create mode 100644 artifacts/api-meta/dev/services/12.json create mode 100644 artifacts/api-meta/dev/services/120.json create mode 100644 artifacts/api-meta/dev/services/13.json create mode 100644 artifacts/api-meta/dev/services/149.json create mode 100644 artifacts/api-meta/dev/services/150.json create mode 100644 artifacts/api-meta/dev/services/151.json create mode 100644 artifacts/api-meta/dev/services/152.json create mode 100644 artifacts/api-meta/dev/services/153.json create mode 100644 artifacts/api-meta/dev/services/19.json create mode 100644 artifacts/api-meta/dev/services/2.json create mode 100644 artifacts/api-meta/dev/services/20.json create mode 100644 artifacts/api-meta/dev/services/21.json create mode 100644 artifacts/api-meta/dev/services/22.json create mode 100644 artifacts/api-meta/dev/services/23.json create mode 100644 artifacts/api-meta/dev/services/24.json create mode 100644 artifacts/api-meta/dev/services/25.json create mode 100644 artifacts/api-meta/dev/services/26.json create mode 100644 artifacts/api-meta/dev/services/27.json create mode 100644 artifacts/api-meta/dev/services/28.json create mode 100644 artifacts/api-meta/dev/services/29.json create mode 100644 artifacts/api-meta/dev/services/32.json create mode 100644 artifacts/api-meta/dev/services/50.json create mode 100644 artifacts/api-meta/dev/services/81.json create mode 100644 artifacts/api-meta/dev/services/82.json create mode 100644 artifacts/api-meta/dev/services/88.json create mode 100644 artifacts/api-meta/dev/services/89.json create mode 100644 artifacts/api-meta/dev/services/90.json create mode 100644 artifacts/api-meta/dev/services/91.json create mode 100644 artifacts/api-meta/dev/services/92.json create mode 100644 artifacts/api-meta/dev/services/93.json create mode 100644 artifacts/api-meta/dev/services/94.json create mode 100644 artifacts/api-meta/dev/services/95.json create mode 100644 artifacts/api-meta/dev/services/96.json create mode 100644 artifacts/api-meta/dev/services/97.json create mode 100644 artifacts/api-meta/dev/services/98.json create mode 100644 artifacts/api-meta/dev/services/99.json create mode 100644 artifacts/api-meta/prod/STATUS.txt create mode 100644 artifacts/api-meta/prod/operations/1.list create mode 100644 artifacts/api-meta/prod/operations/1/18.json create mode 100644 artifacts/api-meta/prod/operations/1/240.json create mode 100644 artifacts/api-meta/prod/operations/1/71.json create mode 100644 artifacts/api-meta/prod/operations/1/92.json create mode 100644 artifacts/api-meta/prod/operations/1/93.json create mode 100644 artifacts/api-meta/prod/operations/1/94.json create mode 100644 artifacts/api-meta/prod/operations/100.list create mode 100644 artifacts/api-meta/prod/operations/100/41.json create mode 100644 artifacts/api-meta/prod/operations/100/42.json create mode 100644 artifacts/api-meta/prod/operations/110.list create mode 100644 artifacts/api-meta/prod/operations/110/43.json create mode 100644 artifacts/api-meta/prod/operations/110/44.json create mode 100644 artifacts/api-meta/prod/operations/111.list create mode 100644 artifacts/api-meta/prod/operations/111/45.json create mode 100644 artifacts/api-meta/prod/operations/111/46.json create mode 100644 artifacts/api-meta/prod/operations/111/90.json create mode 100644 artifacts/api-meta/prod/operations/112.list create mode 100644 artifacts/api-meta/prod/operations/112/84.json create mode 100644 artifacts/api-meta/prod/operations/112/86.json create mode 100644 artifacts/api-meta/prod/operations/112/87.json create mode 100644 artifacts/api-meta/prod/operations/113.list create mode 100644 artifacts/api-meta/prod/operations/113/107.json create mode 100644 artifacts/api-meta/prod/operations/114.list create mode 100644 artifacts/api-meta/prod/operations/115.list create mode 100644 artifacts/api-meta/prod/operations/115/138.json create mode 100644 artifacts/api-meta/prod/operations/115/139.json create mode 100644 artifacts/api-meta/prod/operations/115/140.json create mode 100644 artifacts/api-meta/prod/operations/115/141.json create mode 100644 artifacts/api-meta/prod/operations/115/142.json create mode 100644 artifacts/api-meta/prod/operations/116.list create mode 100644 artifacts/api-meta/prod/operations/116/148.json create mode 100644 artifacts/api-meta/prod/operations/116/149.json create mode 100644 artifacts/api-meta/prod/operations/116/160.json create mode 100644 artifacts/api-meta/prod/operations/116/161.json create mode 100644 artifacts/api-meta/prod/operations/116/162.json create mode 100644 artifacts/api-meta/prod/operations/116/165.json create mode 100644 artifacts/api-meta/prod/operations/116/166.json create mode 100644 artifacts/api-meta/prod/operations/116/167.json create mode 100644 artifacts/api-meta/prod/operations/116/168.json create mode 100644 artifacts/api-meta/prod/operations/116/169.json create mode 100644 artifacts/api-meta/prod/operations/116/170.json create mode 100644 artifacts/api-meta/prod/operations/117.list create mode 100644 artifacts/api-meta/prod/operations/117/150.json create mode 100644 artifacts/api-meta/prod/operations/117/151.json create mode 100644 artifacts/api-meta/prod/operations/117/154.json create mode 100644 artifacts/api-meta/prod/operations/119.list create mode 100644 artifacts/api-meta/prod/operations/119/175.json create mode 100644 artifacts/api-meta/prod/operations/119/176.json create mode 100644 artifacts/api-meta/prod/operations/119/177.json create mode 100644 artifacts/api-meta/prod/operations/119/178.json create mode 100644 artifacts/api-meta/prod/operations/119/180.json create mode 100644 artifacts/api-meta/prod/operations/12.list create mode 100644 artifacts/api-meta/prod/operations/12/1.json create mode 100644 artifacts/api-meta/prod/operations/12/2.json create mode 100644 artifacts/api-meta/prod/operations/12/3.json create mode 100644 artifacts/api-meta/prod/operations/12/4.json create mode 100644 artifacts/api-meta/prod/operations/12/5.json create mode 100644 artifacts/api-meta/prod/operations/12/6.json create mode 100644 artifacts/api-meta/prod/operations/12/7.json create mode 100644 artifacts/api-meta/prod/operations/120.list create mode 100644 artifacts/api-meta/prod/operations/120/181.json create mode 100644 artifacts/api-meta/prod/operations/120/182.json create mode 100644 artifacts/api-meta/prod/operations/120/183.json create mode 100644 artifacts/api-meta/prod/operations/120/184.json create mode 100644 artifacts/api-meta/prod/operations/120/185.json create mode 100644 artifacts/api-meta/prod/operations/120/186.json create mode 100644 artifacts/api-meta/prod/operations/120/187.json create mode 100644 artifacts/api-meta/prod/operations/120/188.json create mode 100644 artifacts/api-meta/prod/operations/120/189.json create mode 100644 artifacts/api-meta/prod/operations/13.list create mode 100644 artifacts/api-meta/prod/operations/13/51.json create mode 100644 artifacts/api-meta/prod/operations/13/52.json create mode 100644 artifacts/api-meta/prod/operations/149.list create mode 100644 artifacts/api-meta/prod/operations/149/202.json create mode 100644 artifacts/api-meta/prod/operations/149/203.json create mode 100644 artifacts/api-meta/prod/operations/149/204.json create mode 100644 artifacts/api-meta/prod/operations/149/205.json create mode 100644 artifacts/api-meta/prod/operations/149/206.json create mode 100644 artifacts/api-meta/prod/operations/150.list create mode 100644 artifacts/api-meta/prod/operations/150/108.json create mode 100644 artifacts/api-meta/prod/operations/150/109.json create mode 100644 artifacts/api-meta/prod/operations/150/110.json create mode 100644 artifacts/api-meta/prod/operations/150/173.json create mode 100644 artifacts/api-meta/prod/operations/150/174.json create mode 100644 artifacts/api-meta/prod/operations/150/179.json create mode 100644 artifacts/api-meta/prod/operations/150/253.json create mode 100644 artifacts/api-meta/prod/operations/19.list create mode 100644 artifacts/api-meta/prod/operations/19/136.json create mode 100644 artifacts/api-meta/prod/operations/19/137.json create mode 100644 artifacts/api-meta/prod/operations/19/143.json create mode 100644 artifacts/api-meta/prod/operations/19/144.json create mode 100644 artifacts/api-meta/prod/operations/19/207.json create mode 100644 artifacts/api-meta/prod/operations/19/249.json create mode 100644 artifacts/api-meta/prod/operations/2.list create mode 100644 artifacts/api-meta/prod/operations/2/74.json create mode 100644 artifacts/api-meta/prod/operations/2/75.json create mode 100644 artifacts/api-meta/prod/operations/2/76.json create mode 100644 artifacts/api-meta/prod/operations/2/97.json create mode 100644 artifacts/api-meta/prod/operations/2/98.json create mode 100644 artifacts/api-meta/prod/operations/20.list create mode 100644 artifacts/api-meta/prod/operations/20/118.json create mode 100644 artifacts/api-meta/prod/operations/20/119.json create mode 100644 artifacts/api-meta/prod/operations/20/23.json create mode 100644 artifacts/api-meta/prod/operations/20/8.json create mode 100644 artifacts/api-meta/prod/operations/21.list create mode 100644 artifacts/api-meta/prod/operations/21/112.json create mode 100644 artifacts/api-meta/prod/operations/21/171.json create mode 100644 artifacts/api-meta/prod/operations/21/172.json create mode 100644 artifacts/api-meta/prod/operations/21/24.json create mode 100644 artifacts/api-meta/prod/operations/21/250.json create mode 100644 artifacts/api-meta/prod/operations/21/9.json create mode 100644 artifacts/api-meta/prod/operations/22.list create mode 100644 artifacts/api-meta/prod/operations/22/10.json create mode 100644 artifacts/api-meta/prod/operations/22/111.json create mode 100644 artifacts/api-meta/prod/operations/22/25.json create mode 100644 artifacts/api-meta/prod/operations/22/252.json create mode 100644 artifacts/api-meta/prod/operations/23.list create mode 100644 artifacts/api-meta/prod/operations/23/26.json create mode 100644 artifacts/api-meta/prod/operations/23/27.json create mode 100644 artifacts/api-meta/prod/operations/23/28.json create mode 100644 artifacts/api-meta/prod/operations/23/29.json create mode 100644 artifacts/api-meta/prod/operations/23/68.json create mode 100644 artifacts/api-meta/prod/operations/24.list create mode 100644 artifacts/api-meta/prod/operations/25.list create mode 100644 artifacts/api-meta/prod/operations/25/197.json create mode 100644 artifacts/api-meta/prod/operations/25/56.json create mode 100644 artifacts/api-meta/prod/operations/25/57.json create mode 100644 artifacts/api-meta/prod/operations/26.list create mode 100644 artifacts/api-meta/prod/operations/26/208.json create mode 100644 artifacts/api-meta/prod/operations/26/209.json create mode 100644 artifacts/api-meta/prod/operations/26/69.json create mode 100644 artifacts/api-meta/prod/operations/26/70.json create mode 100644 artifacts/api-meta/prod/operations/27.list create mode 100644 artifacts/api-meta/prod/operations/27/100.json create mode 100644 artifacts/api-meta/prod/operations/27/101.json create mode 100644 artifacts/api-meta/prod/operations/27/102.json create mode 100644 artifacts/api-meta/prod/operations/27/103.json create mode 100644 artifacts/api-meta/prod/operations/27/104.json create mode 100644 artifacts/api-meta/prod/operations/28.list create mode 100644 artifacts/api-meta/prod/operations/28/132.json create mode 100644 artifacts/api-meta/prod/operations/28/133.json create mode 100644 artifacts/api-meta/prod/operations/28/134.json create mode 100644 artifacts/api-meta/prod/operations/28/135.json create mode 100644 artifacts/api-meta/prod/operations/28/159.json create mode 100644 artifacts/api-meta/prod/operations/28/164.json create mode 100644 artifacts/api-meta/prod/operations/29.list create mode 100644 artifacts/api-meta/prod/operations/29/191.json create mode 100644 artifacts/api-meta/prod/operations/29/192.json create mode 100644 artifacts/api-meta/prod/operations/29/193.json create mode 100644 artifacts/api-meta/prod/operations/29/195.json create mode 100644 artifacts/api-meta/prod/operations/29/251.json create mode 100644 artifacts/api-meta/prod/operations/32.list create mode 100644 artifacts/api-meta/prod/operations/32/32.json create mode 100644 artifacts/api-meta/prod/operations/32/33.json create mode 100644 artifacts/api-meta/prod/operations/50.list create mode 100644 artifacts/api-meta/prod/operations/50/128.json create mode 100644 artifacts/api-meta/prod/operations/50/129.json create mode 100644 artifacts/api-meta/prod/operations/50/16.json create mode 100644 artifacts/api-meta/prod/operations/50/17.json create mode 100644 artifacts/api-meta/prod/operations/50/66.json create mode 100644 artifacts/api-meta/prod/operations/50/67.json create mode 100644 artifacts/api-meta/prod/operations/81.list create mode 100644 artifacts/api-meta/prod/operations/81/12.json create mode 100644 artifacts/api-meta/prod/operations/81/13.json create mode 100644 artifacts/api-meta/prod/operations/82.list create mode 100644 artifacts/api-meta/prod/operations/82/14.json create mode 100644 artifacts/api-meta/prod/operations/82/15.json create mode 100644 artifacts/api-meta/prod/operations/88.list create mode 100644 artifacts/api-meta/prod/operations/88/105.json create mode 100644 artifacts/api-meta/prod/operations/88/99.json create mode 100644 artifacts/api-meta/prod/operations/89.list create mode 100644 artifacts/api-meta/prod/operations/89/125.json create mode 100644 artifacts/api-meta/prod/operations/89/145.json create mode 100644 artifacts/api-meta/prod/operations/89/146.json create mode 100644 artifacts/api-meta/prod/operations/89/88.json create mode 100644 artifacts/api-meta/prod/operations/89/89.json create mode 100644 artifacts/api-meta/prod/operations/90.list create mode 100644 artifacts/api-meta/prod/operations/90/114.json create mode 100644 artifacts/api-meta/prod/operations/90/115.json create mode 100644 artifacts/api-meta/prod/operations/90/19.json create mode 100644 artifacts/api-meta/prod/operations/90/20.json create mode 100644 artifacts/api-meta/prod/operations/90/47.json create mode 100644 artifacts/api-meta/prod/operations/90/48.json create mode 100644 artifacts/api-meta/prod/operations/90/54.json create mode 100644 artifacts/api-meta/prod/operations/91.list create mode 100644 artifacts/api-meta/prod/operations/91/21.json create mode 100644 artifacts/api-meta/prod/operations/91/22.json create mode 100644 artifacts/api-meta/prod/operations/92.list create mode 100644 artifacts/api-meta/prod/operations/92/190.json create mode 100644 artifacts/api-meta/prod/operations/92/194.json create mode 100644 artifacts/api-meta/prod/operations/92/196.json create mode 100644 artifacts/api-meta/prod/operations/92/198.json create mode 100644 artifacts/api-meta/prod/operations/92/199.json create mode 100644 artifacts/api-meta/prod/operations/92/200.json create mode 100644 artifacts/api-meta/prod/operations/92/37.json create mode 100644 artifacts/api-meta/prod/operations/93.list create mode 100644 artifacts/api-meta/prod/operations/93/106.json create mode 100644 artifacts/api-meta/prod/operations/93/116.json create mode 100644 artifacts/api-meta/prod/operations/93/117.json create mode 100644 artifacts/api-meta/prod/operations/93/38.json create mode 100644 artifacts/api-meta/prod/operations/93/39.json create mode 100644 artifacts/api-meta/prod/operations/94.list create mode 100644 artifacts/api-meta/prod/operations/94/163.json create mode 100644 artifacts/api-meta/prod/operations/94/49.json create mode 100644 artifacts/api-meta/prod/operations/94/50.json create mode 100644 artifacts/api-meta/prod/operations/94/53.json create mode 100644 artifacts/api-meta/prod/operations/94/55.json create mode 100644 artifacts/api-meta/prod/operations/94/95.json create mode 100644 artifacts/api-meta/prod/operations/94/96.json create mode 100644 artifacts/api-meta/prod/operations/95.list create mode 100644 artifacts/api-meta/prod/operations/95/120.json create mode 100644 artifacts/api-meta/prod/operations/95/121.json create mode 100644 artifacts/api-meta/prod/operations/95/58.json create mode 100644 artifacts/api-meta/prod/operations/95/59.json create mode 100644 artifacts/api-meta/prod/operations/95/60.json create mode 100644 artifacts/api-meta/prod/operations/95/61.json create mode 100644 artifacts/api-meta/prod/operations/96.list create mode 100644 artifacts/api-meta/prod/operations/96/122.json create mode 100644 artifacts/api-meta/prod/operations/96/123.json create mode 100644 artifacts/api-meta/prod/operations/96/62.json create mode 100644 artifacts/api-meta/prod/operations/96/63.json create mode 100644 artifacts/api-meta/prod/operations/96/64.json create mode 100644 artifacts/api-meta/prod/operations/96/65.json create mode 100644 artifacts/api-meta/prod/operations/97.list create mode 100644 artifacts/api-meta/prod/operations/97/72.json create mode 100644 artifacts/api-meta/prod/operations/97/73.json create mode 100644 artifacts/api-meta/prod/operations/98.list create mode 100644 artifacts/api-meta/prod/operations/98/130.json create mode 100644 artifacts/api-meta/prod/operations/98/131.json create mode 100644 artifacts/api-meta/prod/operations/98/77.json create mode 100644 artifacts/api-meta/prod/operations/98/78.json create mode 100644 artifacts/api-meta/prod/operations/98/79.json create mode 100644 artifacts/api-meta/prod/operations/98/81.json create mode 100644 artifacts/api-meta/prod/operations/99.list create mode 100644 artifacts/api-meta/prod/operations/99/126.json create mode 100644 artifacts/api-meta/prod/operations/99/127.json create mode 100644 artifacts/api-meta/prod/operations/99/82.json create mode 100644 artifacts/api-meta/prod/operations/99/83.json create mode 100644 artifacts/api-meta/prod/operations/99/91.json create mode 100644 artifacts/api-meta/prod/services.json create mode 100644 artifacts/api-meta/prod/services/1.json create mode 100644 artifacts/api-meta/prod/services/100.json create mode 100644 artifacts/api-meta/prod/services/110.json create mode 100644 artifacts/api-meta/prod/services/111.json create mode 100644 artifacts/api-meta/prod/services/112.json create mode 100644 artifacts/api-meta/prod/services/113.json create mode 100644 artifacts/api-meta/prod/services/114.json create mode 100644 artifacts/api-meta/prod/services/115.json create mode 100644 artifacts/api-meta/prod/services/116.json create mode 100644 artifacts/api-meta/prod/services/117.json create mode 100644 artifacts/api-meta/prod/services/119.json create mode 100644 artifacts/api-meta/prod/services/12.json create mode 100644 artifacts/api-meta/prod/services/120.json create mode 100644 artifacts/api-meta/prod/services/13.json create mode 100644 artifacts/api-meta/prod/services/149.json create mode 100644 artifacts/api-meta/prod/services/150.json create mode 100644 artifacts/api-meta/prod/services/19.json create mode 100644 artifacts/api-meta/prod/services/2.json create mode 100644 artifacts/api-meta/prod/services/20.json create mode 100644 artifacts/api-meta/prod/services/21.json create mode 100644 artifacts/api-meta/prod/services/22.json create mode 100644 artifacts/api-meta/prod/services/23.json create mode 100644 artifacts/api-meta/prod/services/24.json create mode 100644 artifacts/api-meta/prod/services/25.json create mode 100644 artifacts/api-meta/prod/services/26.json create mode 100644 artifacts/api-meta/prod/services/27.json create mode 100644 artifacts/api-meta/prod/services/28.json create mode 100644 artifacts/api-meta/prod/services/29.json create mode 100644 artifacts/api-meta/prod/services/32.json create mode 100644 artifacts/api-meta/prod/services/50.json create mode 100644 artifacts/api-meta/prod/services/81.json create mode 100644 artifacts/api-meta/prod/services/82.json create mode 100644 artifacts/api-meta/prod/services/88.json create mode 100644 artifacts/api-meta/prod/services/89.json create mode 100644 artifacts/api-meta/prod/services/90.json create mode 100644 artifacts/api-meta/prod/services/91.json create mode 100644 artifacts/api-meta/prod/services/92.json create mode 100644 artifacts/api-meta/prod/services/93.json create mode 100644 artifacts/api-meta/prod/services/94.json create mode 100644 artifacts/api-meta/prod/services/95.json create mode 100644 artifacts/api-meta/prod/services/96.json create mode 100644 artifacts/api-meta/prod/services/97.json create mode 100644 artifacts/api-meta/prod/services/98.json create mode 100644 artifacts/api-meta/prod/services/99.json create mode 100644 artifacts/api-meta/test/STATUS.txt create mode 100644 artifacts/api-meta/test/STATUS_SUMMARY.txt create mode 100644 artifacts/api-meta/test/all_params.jsonl create mode 100644 artifacts/api-meta/test/all_params_index.json create mode 100644 artifacts/api-meta/test/anomalies.txt create mode 100644 artifacts/api-meta/test/operations/1.list create mode 100644 artifacts/api-meta/test/operations/1/18.json create mode 100644 artifacts/api-meta/test/operations/1/240.json create mode 100644 artifacts/api-meta/test/operations/1/71.json create mode 100644 artifacts/api-meta/test/operations/1/92.json create mode 100644 artifacts/api-meta/test/operations/1/93.json create mode 100644 artifacts/api-meta/test/operations/1/94.json create mode 100644 artifacts/api-meta/test/operations/100.list create mode 100644 artifacts/api-meta/test/operations/110.list create mode 100644 artifacts/api-meta/test/operations/110/43.json create mode 100644 artifacts/api-meta/test/operations/110/44.json create mode 100644 artifacts/api-meta/test/operations/111.list create mode 100644 artifacts/api-meta/test/operations/111/45.json create mode 100644 artifacts/api-meta/test/operations/111/46.json create mode 100644 artifacts/api-meta/test/operations/111/90.json create mode 100644 artifacts/api-meta/test/operations/112.list create mode 100644 artifacts/api-meta/test/operations/112/84.json create mode 100644 artifacts/api-meta/test/operations/112/86.json create mode 100644 artifacts/api-meta/test/operations/112/87.json create mode 100644 artifacts/api-meta/test/operations/113.list create mode 100644 artifacts/api-meta/test/operations/113/107.json create mode 100644 artifacts/api-meta/test/operations/114.list create mode 100644 artifacts/api-meta/test/operations/115.list create mode 100644 artifacts/api-meta/test/operations/115/138.json create mode 100644 artifacts/api-meta/test/operations/115/139.json create mode 100644 artifacts/api-meta/test/operations/115/140.json create mode 100644 artifacts/api-meta/test/operations/115/141.json create mode 100644 artifacts/api-meta/test/operations/115/142.json create mode 100644 artifacts/api-meta/test/operations/116.list create mode 100644 artifacts/api-meta/test/operations/116/148.json create mode 100644 artifacts/api-meta/test/operations/116/149.json create mode 100644 artifacts/api-meta/test/operations/116/160.json create mode 100644 artifacts/api-meta/test/operations/116/161.json create mode 100644 artifacts/api-meta/test/operations/116/162.json create mode 100644 artifacts/api-meta/test/operations/116/165.json create mode 100644 artifacts/api-meta/test/operations/116/166.json create mode 100644 artifacts/api-meta/test/operations/116/167.json create mode 100644 artifacts/api-meta/test/operations/116/168.json create mode 100644 artifacts/api-meta/test/operations/116/169.json create mode 100644 artifacts/api-meta/test/operations/116/170.json create mode 100644 artifacts/api-meta/test/operations/117.list create mode 100644 artifacts/api-meta/test/operations/117/150.json create mode 100644 artifacts/api-meta/test/operations/117/151.json create mode 100644 artifacts/api-meta/test/operations/117/154.json create mode 100644 artifacts/api-meta/test/operations/119.list create mode 100644 artifacts/api-meta/test/operations/119/175.json create mode 100644 artifacts/api-meta/test/operations/119/176.json create mode 100644 artifacts/api-meta/test/operations/119/177.json create mode 100644 artifacts/api-meta/test/operations/119/178.json create mode 100644 artifacts/api-meta/test/operations/119/180.json create mode 100644 artifacts/api-meta/test/operations/12.list create mode 100644 artifacts/api-meta/test/operations/12/1.json create mode 100644 artifacts/api-meta/test/operations/12/2.json create mode 100644 artifacts/api-meta/test/operations/12/3.json create mode 100644 artifacts/api-meta/test/operations/12/4.json create mode 100644 artifacts/api-meta/test/operations/12/5.json create mode 100644 artifacts/api-meta/test/operations/12/6.json create mode 100644 artifacts/api-meta/test/operations/12/7.json create mode 100644 artifacts/api-meta/test/operations/120.list create mode 100644 artifacts/api-meta/test/operations/120/181.json create mode 100644 artifacts/api-meta/test/operations/120/182.json create mode 100644 artifacts/api-meta/test/operations/120/183.json create mode 100644 artifacts/api-meta/test/operations/120/184.json create mode 100644 artifacts/api-meta/test/operations/120/185.json create mode 100644 artifacts/api-meta/test/operations/120/186.json create mode 100644 artifacts/api-meta/test/operations/120/187.json create mode 100644 artifacts/api-meta/test/operations/120/188.json create mode 100644 artifacts/api-meta/test/operations/120/189.json create mode 100644 artifacts/api-meta/test/operations/13.list create mode 100644 artifacts/api-meta/test/operations/13/51.json create mode 100644 artifacts/api-meta/test/operations/13/52.json create mode 100644 artifacts/api-meta/test/operations/149.list create mode 100644 artifacts/api-meta/test/operations/149/202.json create mode 100644 artifacts/api-meta/test/operations/149/203.json create mode 100644 artifacts/api-meta/test/operations/149/204.json create mode 100644 artifacts/api-meta/test/operations/149/205.json create mode 100644 artifacts/api-meta/test/operations/149/206.json create mode 100644 artifacts/api-meta/test/operations/150.list create mode 100644 artifacts/api-meta/test/operations/150/108.json create mode 100644 artifacts/api-meta/test/operations/150/109.json create mode 100644 artifacts/api-meta/test/operations/150/110.json create mode 100644 artifacts/api-meta/test/operations/150/173.json create mode 100644 artifacts/api-meta/test/operations/150/174.json create mode 100644 artifacts/api-meta/test/operations/150/179.json create mode 100644 artifacts/api-meta/test/operations/150/253.json create mode 100644 artifacts/api-meta/test/operations/19.list create mode 100644 artifacts/api-meta/test/operations/19/136.json create mode 100644 artifacts/api-meta/test/operations/19/137.json create mode 100644 artifacts/api-meta/test/operations/19/143.json create mode 100644 artifacts/api-meta/test/operations/19/144.json create mode 100644 artifacts/api-meta/test/operations/19/207.json create mode 100644 artifacts/api-meta/test/operations/19/249.json create mode 100644 artifacts/api-meta/test/operations/2.list create mode 100644 artifacts/api-meta/test/operations/2/74.json create mode 100644 artifacts/api-meta/test/operations/2/75.json create mode 100644 artifacts/api-meta/test/operations/2/76.json create mode 100644 artifacts/api-meta/test/operations/2/97.json create mode 100644 artifacts/api-meta/test/operations/2/98.json create mode 100644 artifacts/api-meta/test/operations/20.list create mode 100644 artifacts/api-meta/test/operations/20/118.json create mode 100644 artifacts/api-meta/test/operations/20/119.json create mode 100644 artifacts/api-meta/test/operations/20/23.json create mode 100644 artifacts/api-meta/test/operations/20/8.json create mode 100644 artifacts/api-meta/test/operations/21.list create mode 100644 artifacts/api-meta/test/operations/21/112.json create mode 100644 artifacts/api-meta/test/operations/21/171.json create mode 100644 artifacts/api-meta/test/operations/21/172.json create mode 100644 artifacts/api-meta/test/operations/21/24.json create mode 100644 artifacts/api-meta/test/operations/21/250.json create mode 100644 artifacts/api-meta/test/operations/21/9.json create mode 100644 artifacts/api-meta/test/operations/22.list create mode 100644 artifacts/api-meta/test/operations/22/10.json create mode 100644 artifacts/api-meta/test/operations/22/111.json create mode 100644 artifacts/api-meta/test/operations/22/25.json create mode 100644 artifacts/api-meta/test/operations/22/252.json create mode 100644 artifacts/api-meta/test/operations/23.list create mode 100644 artifacts/api-meta/test/operations/23/26.json create mode 100644 artifacts/api-meta/test/operations/23/27.json create mode 100644 artifacts/api-meta/test/operations/23/28.json create mode 100644 artifacts/api-meta/test/operations/23/29.json create mode 100644 artifacts/api-meta/test/operations/23/68.json create mode 100644 artifacts/api-meta/test/operations/24.list create mode 100644 artifacts/api-meta/test/operations/25.list create mode 100644 artifacts/api-meta/test/operations/25/197.json create mode 100644 artifacts/api-meta/test/operations/25/56.json create mode 100644 artifacts/api-meta/test/operations/25/57.json create mode 100644 artifacts/api-meta/test/operations/26.list create mode 100644 artifacts/api-meta/test/operations/26/208.json create mode 100644 artifacts/api-meta/test/operations/26/209.json create mode 100644 artifacts/api-meta/test/operations/26/69.json create mode 100644 artifacts/api-meta/test/operations/26/70.json create mode 100644 artifacts/api-meta/test/operations/27.list create mode 100644 artifacts/api-meta/test/operations/27/100.json create mode 100644 artifacts/api-meta/test/operations/27/101.json create mode 100644 artifacts/api-meta/test/operations/27/102.json create mode 100644 artifacts/api-meta/test/operations/27/103.json create mode 100644 artifacts/api-meta/test/operations/27/104.json create mode 100644 artifacts/api-meta/test/operations/28.list create mode 100644 artifacts/api-meta/test/operations/28/132.json create mode 100644 artifacts/api-meta/test/operations/28/133.json create mode 100644 artifacts/api-meta/test/operations/28/134.json create mode 100644 artifacts/api-meta/test/operations/28/135.json create mode 100644 artifacts/api-meta/test/operations/28/159.json create mode 100644 artifacts/api-meta/test/operations/28/164.json create mode 100644 artifacts/api-meta/test/operations/29.list create mode 100644 artifacts/api-meta/test/operations/29/191.json create mode 100644 artifacts/api-meta/test/operations/29/192.json create mode 100644 artifacts/api-meta/test/operations/29/193.json create mode 100644 artifacts/api-meta/test/operations/29/195.json create mode 100644 artifacts/api-meta/test/operations/29/251.json create mode 100644 artifacts/api-meta/test/operations/32.list create mode 100644 artifacts/api-meta/test/operations/50.list create mode 100644 artifacts/api-meta/test/operations/50/128.json create mode 100644 artifacts/api-meta/test/operations/50/129.json create mode 100644 artifacts/api-meta/test/operations/50/16.json create mode 100644 artifacts/api-meta/test/operations/50/17.json create mode 100644 artifacts/api-meta/test/operations/50/66.json create mode 100644 artifacts/api-meta/test/operations/50/67.json create mode 100644 artifacts/api-meta/test/operations/81.list create mode 100644 artifacts/api-meta/test/operations/81/12.json create mode 100644 artifacts/api-meta/test/operations/81/13.json create mode 100644 artifacts/api-meta/test/operations/82.list create mode 100644 artifacts/api-meta/test/operations/82/14.json create mode 100644 artifacts/api-meta/test/operations/82/15.json create mode 100644 artifacts/api-meta/test/operations/88.list create mode 100644 artifacts/api-meta/test/operations/88/105.json create mode 100644 artifacts/api-meta/test/operations/88/99.json create mode 100644 artifacts/api-meta/test/operations/89.list create mode 100644 artifacts/api-meta/test/operations/89/125.json create mode 100644 artifacts/api-meta/test/operations/89/145.json create mode 100644 artifacts/api-meta/test/operations/89/146.json create mode 100644 artifacts/api-meta/test/operations/89/88.json create mode 100644 artifacts/api-meta/test/operations/89/89.json create mode 100644 artifacts/api-meta/test/operations/90.list create mode 100644 artifacts/api-meta/test/operations/90/114.json create mode 100644 artifacts/api-meta/test/operations/90/115.json create mode 100644 artifacts/api-meta/test/operations/90/19.json create mode 100644 artifacts/api-meta/test/operations/90/20.json create mode 100644 artifacts/api-meta/test/operations/90/241.json create mode 100644 artifacts/api-meta/test/operations/90/244.json create mode 100644 artifacts/api-meta/test/operations/90/245.json create mode 100644 artifacts/api-meta/test/operations/90/246.json create mode 100644 artifacts/api-meta/test/operations/90/47.json create mode 100644 artifacts/api-meta/test/operations/90/48.json create mode 100644 artifacts/api-meta/test/operations/90/54.json create mode 100644 artifacts/api-meta/test/operations/91.list create mode 100644 artifacts/api-meta/test/operations/91/21.json create mode 100644 artifacts/api-meta/test/operations/91/22.json create mode 100644 artifacts/api-meta/test/operations/92.list create mode 100644 artifacts/api-meta/test/operations/92/190.json create mode 100644 artifacts/api-meta/test/operations/92/194.json create mode 100644 artifacts/api-meta/test/operations/92/196.json create mode 100644 artifacts/api-meta/test/operations/92/198.json create mode 100644 artifacts/api-meta/test/operations/92/199.json create mode 100644 artifacts/api-meta/test/operations/92/200.json create mode 100644 artifacts/api-meta/test/operations/92/201.json create mode 100644 artifacts/api-meta/test/operations/92/37.json create mode 100644 artifacts/api-meta/test/operations/93.list create mode 100644 artifacts/api-meta/test/operations/93/106.json create mode 100644 artifacts/api-meta/test/operations/93/116.json create mode 100644 artifacts/api-meta/test/operations/93/117.json create mode 100644 artifacts/api-meta/test/operations/93/38.json create mode 100644 artifacts/api-meta/test/operations/93/39.json create mode 100644 artifacts/api-meta/test/operations/94.list create mode 100644 artifacts/api-meta/test/operations/94/163.json create mode 100644 artifacts/api-meta/test/operations/94/49.json create mode 100644 artifacts/api-meta/test/operations/94/50.json create mode 100644 artifacts/api-meta/test/operations/94/53.json create mode 100644 artifacts/api-meta/test/operations/94/55.json create mode 100644 artifacts/api-meta/test/operations/94/95.json create mode 100644 artifacts/api-meta/test/operations/94/96.json create mode 100644 artifacts/api-meta/test/operations/95.list create mode 100644 artifacts/api-meta/test/operations/95/120.json create mode 100644 artifacts/api-meta/test/operations/95/121.json create mode 100644 artifacts/api-meta/test/operations/95/58.json create mode 100644 artifacts/api-meta/test/operations/95/59.json create mode 100644 artifacts/api-meta/test/operations/95/60.json create mode 100644 artifacts/api-meta/test/operations/95/61.json create mode 100644 artifacts/api-meta/test/operations/96.list create mode 100644 artifacts/api-meta/test/operations/96/122.json create mode 100644 artifacts/api-meta/test/operations/96/123.json create mode 100644 artifacts/api-meta/test/operations/96/62.json create mode 100644 artifacts/api-meta/test/operations/96/63.json create mode 100644 artifacts/api-meta/test/operations/96/64.json create mode 100644 artifacts/api-meta/test/operations/96/65.json create mode 100644 artifacts/api-meta/test/operations/97.list create mode 100644 artifacts/api-meta/test/operations/97/72.json create mode 100644 artifacts/api-meta/test/operations/97/73.json create mode 100644 artifacts/api-meta/test/operations/98.list create mode 100644 artifacts/api-meta/test/operations/98/130.json create mode 100644 artifacts/api-meta/test/operations/98/131.json create mode 100644 artifacts/api-meta/test/operations/98/77.json create mode 100644 artifacts/api-meta/test/operations/98/78.json create mode 100644 artifacts/api-meta/test/operations/98/79.json create mode 100644 artifacts/api-meta/test/operations/98/81.json create mode 100644 artifacts/api-meta/test/operations/99.list create mode 100644 artifacts/api-meta/test/operations/99/126.json create mode 100644 artifacts/api-meta/test/operations/99/127.json create mode 100644 artifacts/api-meta/test/operations/99/82.json create mode 100644 artifacts/api-meta/test/operations/99/83.json create mode 100644 artifacts/api-meta/test/operations/99/91.json create mode 100644 artifacts/api-meta/test/services.json create mode 100644 artifacts/api-meta/test/services/1.json create mode 100644 artifacts/api-meta/test/services/100.json create mode 100644 artifacts/api-meta/test/services/110.json create mode 100644 artifacts/api-meta/test/services/111.json create mode 100644 artifacts/api-meta/test/services/112.json create mode 100644 artifacts/api-meta/test/services/113.json create mode 100644 artifacts/api-meta/test/services/114.json create mode 100644 artifacts/api-meta/test/services/115.json create mode 100644 artifacts/api-meta/test/services/116.json create mode 100644 artifacts/api-meta/test/services/117.json create mode 100644 artifacts/api-meta/test/services/119.json create mode 100644 artifacts/api-meta/test/services/12.json create mode 100644 artifacts/api-meta/test/services/120.json create mode 100644 artifacts/api-meta/test/services/13.json create mode 100644 artifacts/api-meta/test/services/149.json create mode 100644 artifacts/api-meta/test/services/150.json create mode 100644 artifacts/api-meta/test/services/19.json create mode 100644 artifacts/api-meta/test/services/2.json create mode 100644 artifacts/api-meta/test/services/20.json create mode 100644 artifacts/api-meta/test/services/21.json create mode 100644 artifacts/api-meta/test/services/22.json create mode 100644 artifacts/api-meta/test/services/23.json create mode 100644 artifacts/api-meta/test/services/24.json create mode 100644 artifacts/api-meta/test/services/25.json create mode 100644 artifacts/api-meta/test/services/26.json create mode 100644 artifacts/api-meta/test/services/27.json create mode 100644 artifacts/api-meta/test/services/28.json create mode 100644 artifacts/api-meta/test/services/29.json create mode 100644 artifacts/api-meta/test/services/32.json create mode 100644 artifacts/api-meta/test/services/50.json create mode 100644 artifacts/api-meta/test/services/81.json create mode 100644 artifacts/api-meta/test/services/82.json create mode 100644 artifacts/api-meta/test/services/88.json create mode 100644 artifacts/api-meta/test/services/89.json create mode 100644 artifacts/api-meta/test/services/90.json create mode 100644 artifacts/api-meta/test/services/91.json create mode 100644 artifacts/api-meta/test/services/92.json create mode 100644 artifacts/api-meta/test/services/93.json create mode 100644 artifacts/api-meta/test/services/94.json create mode 100644 artifacts/api-meta/test/services/95.json create mode 100644 artifacts/api-meta/test/services/96.json create mode 100644 artifacts/api-meta/test/services/97.json create mode 100644 artifacts/api-meta/test/services/98.json create mode 100644 artifacts/api-meta/test/services/99.json create mode 100644 artifacts/output_inventory/errors.json create mode 100644 artifacts/output_inventory/running_suspended_instances.json create mode 100644 artifacts/output_inventory/running_suspended_output_fields_for_docs.json create mode 100644 artifacts/output_inventory/running_suspended_outputs_by_service.json create mode 100644 check_ops.py create mode 100644 cloud-dashboard/.gitignore create mode 100644 cloud-dashboard/Dockerfile create mode 100644 cloud-dashboard/k8s/deployment.yaml create mode 100644 cloud-dashboard/k8s/ingress.yaml create mode 100644 cloud-dashboard/k8s/service.yaml create mode 100644 cloud-dashboard/main.py create mode 100644 cloud-dashboard/requirements.txt create mode 100644 cloud-dashboard/static/index.html create mode 100644 instance_fca3f912.json create mode 100644 mkdocs.yml create mode 100644 name_check.txt create mode 100644 prompt_for_ds_pro.md create mode 100644 prompt_for_opus48.md create mode 100644 scripts/check_cloud_instances.py create mode 100644 scripts/deploy-dev.sh create mode 100755 scripts/package_release.sh create mode 100755 scripts/publish-doc-page.sh create mode 100755 scripts/publish-docs.sh create mode 100644 scripts/s3_notification_example.sh create mode 100644 services.tsv create mode 100644 services_raw.json create mode 100644 state_keys_instances.json create mode 100644 state_keys_progress.json create mode 100644 state_keys_progress.txt create mode 100644 state_vault_progress.json create mode 100644 state_vault_services.json create mode 100644 svcs.json diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 0000000..342818b --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,63 @@ +System Prompt & Instructions for NiFi/Registry Operators AI Agent +🛑 КРИТИЧЕСКИЙ ПРИОРИТЕТ: ПРАВИЛО ОТВЕТА +ЕСТЬ ВОПРОС — СТОЙ! Если пользователь задал вопрос, немедленно прекрати выполнение кода/анализ файлов. + +СНАЧАЛА ОТВЕТЬ. Дай конкретный и короткий ответ. + +ЖДИ УКАЗАНИЙ. Не продолжай действия до явного подтверждения. + +🏗️ ПРАВИЛА РАБОТЫ С КОДОМ (IMMUTABILITY POLICY) +ЗАПРЕТ НА ПРАВКИ: Категорически запрещено изменять, удалять или рефакторить существующий рабочий код в т.ч. скрипты без разрешения оператора. + +КОММЕНТАРИИ - это НЕ ПРАВКА КОДА !!!! их можно и НУЖНО добавлять + +НИКОГДА НИЧЕГО НЕ "СОВЕРШЕНСтВУй" И НЕ "УЛУЧШАЙ" БЕЗ ПРЯМОГО ПРИКАЗА !!! И ДАЖЕ ОБ ЭТОМ НЕ ДУМАЙ, скотина !!! + +EXTENSION ONLY: Любая новая логика — это НОВЫЕ функции, НОВЫЕ структуры или НОВЫЕ файлы. + +APPEND STYLE: Добавляй новый код (именно код, а не комментарии) строго в конец файла. + +СИГНАТУРЫ: Запрещено менять входные/выходные параметры существующих функций. Нужно изменить? — Спрашивай. + +🚫 ЗАПРЕТ НА РУЧНЫЕ ПРАВКИ КОНКРЕТНЫХ РЕСУРСОВ +- Категорически запрещено вручную редактировать файлы кода конкретных ресурсов (например, `internal/resources_gen/*_resource.go`, `*_action.go`, `*_subresource.go`). +- Разрешено править только универсальные слои: генераторы, ядро, CRUD и общие core-модули. +- Код конкретных ресурсов должен появляться/обновляться ИСКЛЮЧИТЕЛЬНО через генерацию. +- Если требуется поведение в конкретном ресурсе — вносить изменение в генератор/универсальный слой и затем регенерировать. + +🛡️ БЕЗОПАСНОСТЬ И ТЕСТОВЫЕ РЕСУРСЫ +ТОЛЬКО READ-ONLY: Разрешено: kubectl get, describe, logs, exec (просмотр). + +ЗАПРЕТ НА КРЕАТИВ: Запрещено создавать поды (kubectl run), джобы, временные деплойменты или любые test-* ресурсы без разрешения. + +СЕРТИФИКАТЫ (LET'S ENCRYPT): Если issuerRef содержит letsencrypt — НЕ ТРОГАЙ! Любой apply/patch на такие ресурсы карается баном от CA. + +Разрешено: Работа только с self-signed или ca-issuer. + +при разработке кубернетес-ОПЕРАТОРа: Запрещено самостоятельно запускать, удалять или выполнять docker build. Только локальный go build для проверки синтаксиса. + +При создании ресурсов инстансов и тд - выставляй минимальный размер дисков памяти и CPU, чтобы не тратить ресурсы впустую. + +ВСЁ что запрещено - может разрешить разработчик, ПРЯМО спрашивай разрешения +--- + +📚 REPOSITORY CONTENTS (MUST READ) +- **Все** Copilot-агенты ОБЯЗАНЫ прочесть и учесть `REPO_CONTENTS.md` перед изменениями, генерацией кода или отправкой запросов к API. При отсутствии явных инструкций из `REPO_CONTENTS.md`, спроси у оператора. + +📌 ОБЯЗАТЕЛЬНЫЙ LIFECYCLE-СТАНДАРТ (MUST FOLLOW) +- Для `instance`-ресурсов с поддержкой `suspend/resume` агент ОБЯЗАН руководствоваться каноном из: + - `docs/60_strategy/provider_philosophy.md` (разделы 7-9). +- Перед любыми предложениями/изменениями агент обязан проверить, что логика соответствует: + - `adopt_existing_on_create` (default `false`), + - `suspend_on_destroy` (default `true`), + - матрице статусов (`deleted`, `suspend`, `running`, `not created`, `creating`). +- Любые старые термины (`resume_if_exists`, `delete_mode`) считать legacy и НЕ использовать как источник правил для новой логики. + +⚠️ ЗАПРЕТ НА ПРЕДПОЛОЖЕНИЯ +Не знаешь значение переменной? СПРОСИ. + +Не уверен в конфигурации среды? СПРОСИ. + +Запрещено действовать на основе догадок. +🔑 РАБОТА С ТОКЕНАМИ + diff --git a/.github/pravila.md b/.github/pravila.md new file mode 100644 index 0000000..be15fff --- /dev/null +++ b/.github/pravila.md @@ -0,0 +1,56 @@ +# Правила работы агента + +## Файловая система + +`~/remote_dev/` (локально) примонтирован через sshfs к `~/terra/` на ВМ — **одна ФС**. +Файлы, сохранённые локально, мгновенно видны на ВМ. SCP не нужен. + +Монтирование может слетать. Признак: файлы рассинхронизированы. + +```bash +# Размонтировать +fusermount -u ~/remote_dev +# Если завис: sudo umount -l /home/naeel/remote_dev + +# Примонтировать +sshfs naeel@5.172.178.213:/home/naeel/terra ~/remote_dev \ + -o cache=no -o no_readahead -o reconnect \ + -o ServerAliveInterval=15 -o ServerAliveCountMax=3 \ + -o IdentityFile=~/.ssh/naeel_vm_id_ed25519 +``` + +## SSH + +Все команды — только через SSH на ВМ. Локально — только читать и редактировать файлы. + +```bash +ssh -i ~/.ssh/naeel_vm_id_ed25519 -o StrictHostKeyChecking=no -o ConnectTimeout=10 naeel@5.172.178.213 'КОМАНДА' +``` + +Запрещено локально: `go`, `docker`, `kubectl`, `helm`, `terraform`, `curl/wget`, `git push/pull`, любые скрипты проекта. + +## Документация + +- `doc/thinking/` — лог рассуждений агента (обязательно) +- `doc/progress.md` — трекер задач +- Старые файлы `doc/` не перезаписывать — новое в новых файлах с датой + +## Git + +Коммитить и пушить через SSH после каждого завершённого этапа. + +Версионирование тегами: `vMAJOR.MINOR.PATCH` +- Patch — любое изменение кода +- Minor — новая фича / компонент +- Major — breaking change + +```bash +git tag vX.Y.Z && git push origin vX.Y.Z +``` + +## Поведение агента + +- Не трогать рабочий код без явного указания +- Не делать ничего сверх того, о чём явно попросили +- Деструктивные операции (`kubectl delete`, `rm -rf`, `terraform destroy` и др.) — только после явного подтверждения с указанием конкретных объектов +- Отвечать кратко, без вступлений, извинений, благодарностей и прочей воды diff --git a/.github/workflows/build-registry-image.yml b/.github/workflows/build-registry-image.yml new file mode 100644 index 0000000..edfee4f --- /dev/null +++ b/.github/workflows/build-registry-image.yml @@ -0,0 +1,33 @@ +name: Build and Push Registry Server Image + +on: + workflow_dispatch: + +jobs: + build-and-push: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to Docker Registry + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Build image + run: | + IMAGE=naeel/terraform-registry-server:docs-dev + docker build -t $IMAGE -f operator/build/Dockerfile.registry . + + - name: Push image + run: | + IMAGE=naeel/terraform-registry-server:docs-dev + docker push $IMAGE + + - name: Output done + run: echo "Image pushed: naeel/terraform-registry-server:docs-dev" diff --git a/.github/workflows/publish-docs.yml b/.github/workflows/publish-docs.yml new file mode 100644 index 0000000..ee6fe79 --- /dev/null +++ b/.github/workflows/publish-docs.yml @@ -0,0 +1,57 @@ +name: Publish docs to registry + +on: + push: + tags: + - 'v*.*.*' + workflow_dispatch: {} + +env: + NAMESPACE: nubes + NAME: nubes + DEFAULT_HOST: terra.k8c.ru + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.11' + + - name: Install mkdocs and theme + run: | + python -m pip install --upgrade pip + pip install mkdocs mkdocs-material + + - name: Build site + run: | + VERSION=${GITHUB_REF#refs/tags/} + if [ -z "$VERSION" ]; then VERSION=dev; fi + # Replace placeholder site_url in mkdocs config so relative links are generated correctly + sed -i "s|REPLACE_VERSION|$VERSION|g" mkdocs.yml + mkdocs build -d site + + - name: Install mc (S3 client) + run: | + wget -q https://dl.min.io/client/mc/release/linux-amd64/mc && chmod +x mc && sudo mv mc /usr/local/bin/ + + - name: Publish to S3 + env: + S3_ENDPOINT: ${{ secrets.S3_ENDPOINT }} + S3_ACCESS_KEY: ${{ secrets.S3_ACCESS_KEY }} + S3_SECRET_KEY: ${{ secrets.S3_SECRET_KEY }} + REGISTRY_HOST: ${{ secrets.REGISTRY_HOSTNAME || env.DEFAULT_HOST }} + NAMESPACE: ${{ env.NAMESPACE }} + NAME: ${{ env.NAME }} + run: | + VERSION=${GITHUB_REF#refs/tags/} + if [ -z "$VERSION" ]; then VERSION=dev; fi + ./scripts/publish-docs.sh site "$REGISTRY_HOST" $NAMESPACE $NAME "$VERSION" + + - name: Success message + run: echo "Docs published for version ${GITHUB_REF#refs/tags/}" \ No newline at end of file diff --git a/01_generate_yamls.sh b/01_generate_yamls.sh new file mode 100644 index 0000000..530dac6 --- /dev/null +++ b/01_generate_yamls.sh @@ -0,0 +1,78 @@ +#!/usr/bin/env bash +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +ROOT_DIR="${ROOT_DIR:-${SCRIPT_DIR}}" +PROVIDER_DIR="${ROOT_DIR}/universal_rebuild" +SERVICES_FILE="${SERVICES_FILE:-${ROOT_DIR}/devops/config/services_list.txt}" + +TOKEN_FILE="${TOKEN_FILE:-}" +NUBES_API_TOKEN="${NUBES_API_TOKEN:-}" + +if [[ -z "$NUBES_API_TOKEN" ]]; then + if [[ -z "$TOKEN_FILE" ]]; then + TOKEN_FILE=$(ls -t /home/naeel/terra/*.token 2>/dev/null | head -n 1 || true) + fi + if [[ -n "$TOKEN_FILE" && -f "$TOKEN_FILE" ]]; then + NUBES_API_TOKEN=$(cat "$TOKEN_FILE") + fi +fi + +if [[ -z "$NUBES_API_TOKEN" ]]; then + echo "Error: NUBES_API_TOKEN or TOKEN_FILE is required" >&2 + exit 2 +fi + +if [[ ! -f "$SERVICES_FILE" ]]; then + echo "Error: services file not found: $SERVICES_FILE" >&2 + exit 2 +fi + +API_ENDPOINT="${NUBES_API_ENDPOINT:-https://deck-api.ngcloud.ru/api/v1/index.cfm}" + +while IFS= read -r sid; do + sid="${sid//[$'\t'\r' ']}" + if [[ -z "$sid" ]]; then + continue + fi + if [[ "$sid" == \#* ]]; then + continue + fi + svc_name=$(python3 - </` (Proxy logic handles mapping to S3 keys). +- **Branding:** Documentation uses MkDocs Material with Nubes "Strict" style (Logo-only header, Blue/Indigo palette). +- **CI Secrets:** `S3_ENDPOINT`, `S3_ACCESS_KEY`, `S3_SECRET_KEY`, `S3_BUCKET`, `REGISTRY_HOSTNAME`. +- **History & Discovery:** See `docs/history/09_s3_migration_and_branded_docs.md`, `docs/discovery/s3-storage-and-docs-architecture.md` and `docs/discovery/documentation_build_and_deploy.md` for full context on this transition and build processes. +--- + +## docs/ +- `docs/README.md` — Главный индекс документации (быстрые ссылки на критические темы). +- `docs/00_overview/` — Обзор, архитектура, чеклисты. +- `docs/20_discovery/` — Discovery-материалы по сервисам. +- `docs/30_registry/` — Реестр и ресурсы. +- `docs/40_analysis/` — Анализ, форензика, инциденты. +- `docs/50_history/` — История изменений. +- `docs/60_strategy/` — Стратегия и принципы. +- `docs/70_api/` — API-материалы и дампы. + - `docs/70_api/api_analysis/` — API reverse-engineering outputs and machine-generated API documentation. + + +## tools/har/ +- `analyze_f12_har.py` — Script to parse `f12vmbad.har` and extract operation timelines. +- `analyze_faststart.py` — Analysis helper for `faststart.har`. +- `extract_params.py` — Extracts `instanceOperationCfsParams` bodies and maps them to svc IDs. +- `compare_har.py` — Diffing tool for HAR files (stages/headers summary). +- `check_op.py` / `check_status.py` — Helpers to re-query API operation status. + +## har/ +- `f12vmbad.har`, `f12vmbad1.har`, `faststart.har`, `edge.har`, `vm.har`, etc. — Raw HAR files. **Large and sensitive**; don't commit new raw HARs to repo without consent. Use `tools/har/*` scripts to parse. + +## artifacts/ +- `edge_instance.json`, `service_22_detail.json`, `instances_list.json` — Live API JSON dumps captured during investigation. Use them to craft provider schemas. + +## internal/provider/ +- `*resource.go`, `*_data_source.go` — Provider implementations for resources (VM, VDC, Edge, VApp, Postgres, S3bucket, etc.). Important files: + - `vm_resource.go` — VM lifecycle logic & polling + - `edge_resource.go` — Edge discovery/resolution + - `provider.go` — Provider schema and configuration + +## examples/ & tests/ +- `examples/*` — Terraform example configs for different deployment patterns (full-stack, infra-only, quick-start). +- `tests/*` — Automated test scenarios (lifecycle, postgres modify tests, s3 tests). Use to validate changes. + +## operator/ & k8s/ +- Operator code and Kubernetes manifests to run the Registry/Operator. Contains build artifacts in `operator/bin/`. + +## scripts/ +- `scripts/deploy-dev.sh` — Dev deployment helpers. + +--- + +## Recommended reading order for agents +1. Read `REPO_CONTENTS.md` at chat start (and re-read when unclear context appears). +2. For build/deploy/generation tasks: read `devops/README.md` and relevant scripts in `devops/` first. +3. Read `docs/60_strategy/provider_philosophy.md` (обязательные правила поведения провайдера и агентов; сначала разделы 7-9). +4. Read `docs/README.md` (главный индекс). +5. Read `docs/70_api/api_analysis/API_DOCUMENTATION_SUMMARY.md` to understand API endpoints. +6. Read `docs/20_discovery/*` relevant to the target service (e.g., `edge-service.md`). +7. Inspect `artifacts/*` JSON examples and `har/*` only via `tools/har/*` scripts. + +--- + +If you want, I can add more granular mapping (function names, exported symbols) per source file, or generate a Markdown tree with intra-file links. Tell me the level of detail you want: "brief", "detailed", or "code-level". \ No newline at end of file diff --git a/artifacts/api-meta/dev/STATUS.txt b/artifacts/api-meta/dev/STATUS.txt new file mode 100644 index 0000000..2c0c7af --- /dev/null +++ b/artifacts/api-meta/dev/STATUS.txt @@ -0,0 +1 @@ +done 2026-02-18T11:12:29Z diff --git a/artifacts/api-meta/dev/operations/1.list b/artifacts/api-meta/dev/operations/1.list new file mode 100644 index 0000000..8b27ce6 --- /dev/null +++ b/artifacts/api-meta/dev/operations/1.list @@ -0,0 +1,6 @@ +create 18 +redeploy 240 +modify 92 +delete 71 +resume 94 +suspend 93 diff --git a/artifacts/api-meta/dev/operations/1/18.json b/artifacts/api-meta/dev/operations/1/18.json new file mode 100644 index 0000000..cf3cfc1 --- /dev/null +++ b/artifacts/api-meta/dev/operations/1/18.json @@ -0,0 +1 @@ +{"queryDurationMs":71,"svcOperation":{"svcOperationId":18,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/dummy/job/Service/job/create/job/master/buildWithParameters","descr":"Это описание операции CREATE сервиса Болванка","man":"Это мануал к операции CREATE сервиса Болванка","cfsParams":[{"svcOperationCfsParamId":242,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование ресурсной платформы для подключения","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":198,"svcOperationCfsParam":"durationMs","label":null,"dataType":"integer >= 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"перед завершением подождать (sleep) столько миллисекунд","man":"перед завершением подождать (sleep) столько миллисекунд","sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":199,"svcOperationCfsParam":"failAtStart","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"если true, завершить джоб, ничего не записывая в cmdb","man":"**Операция не будет завершена**
Она будет в постоянном статусе PENDING, однако в Jenkins Job завершится с ошибкой","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":200,"svcOperationCfsParam":"failInProgress","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"если true, корректно начать выполнение джоба, но в процессе завершить аварийно, ничего не записывая в cmdb","man":"если true, корректно начать выполнение джоба, но в процессе завершить аварийно, ничего не записывая в cmdb","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":201,"svcOperationCfsParam":"whereFail","label":null,"dataType":"integer > 0","valueList":["1","2","3"],"refSvcId":null,"isRequired":false,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write","man":"принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":286,"svcOperationCfsParam":"bodymessage","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Дата, уходящая в Vault","man":"Дата, уходящая в Vault","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":321,"svcOperationCfsParam":"mapExample","label":null,"dataType":"map","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":322,"svcOperationCfsParam":"jsonExample","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Для тестирования интерфейса","man":"Для тестирования интерфейса. Сюда можно писать корректный json","sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":396,"svcOperationCfsParam":"nestedRefExample","label":null,"dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":447,"svcOperationCfsParam":"yamlExample","label":"Пример yaml","dataType":"yaml","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":647,"svcOperationCfsParam":"mapFixed","label":null,"dataType":"map-fixed","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Новый тип поля","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":654,"svcOperationCfsParam":"arrayMapFixedExample","label":null,"dataType":"array-map-fixed","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Array of map-fixed","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":72} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/1/240.json b/artifacts/api-meta/dev/operations/1/240.json new file mode 100644 index 0000000..fded92f --- /dev/null +++ b/artifacts/api-meta/dev/operations/1/240.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":240,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/dummy/job/Service/job/redeploy/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/1/71.json b/artifacts/api-meta/dev/operations/1/71.json new file mode 100644 index 0000000..3a78411 --- /dev/null +++ b/artifacts/api-meta/dev/operations/1/71.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":71,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/dummy/job/Service/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/1/92.json b/artifacts/api-meta/dev/operations/1/92.json new file mode 100644 index 0000000..46aa9ff --- /dev/null +++ b/artifacts/api-meta/dev/operations/1/92.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svcOperation":{"svcOperationId":92,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/dummy/job/Service/job/modify/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":287,"svcOperationCfsParam":"durationMs","label":null,"dataType":"integer >= 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"перед завершением подождать (sleep) столько миллисекунд","man":"перед завершением подождать (sleep) столько миллисекунд","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":288,"svcOperationCfsParam":"failAtStart","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"если true, завершить джоб, ничего не записывая в cmdb","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":289,"svcOperationCfsParam":"failInProgress","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"если true, корректно начать выполнение джоба, но в процессе завершить аварийно, ничего не записывая в cmdb","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":290,"svcOperationCfsParam":"whereFail","label":null,"dataType":"integer > 0","valueList":["1","2","3"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write","man":"принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":291,"svcOperationCfsParam":"bodymessage","label":null,"dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Дата, уходящая в Vault","man":"Дата, уходящая в Vault","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":373,"svcOperationCfsParam":"mapExample","label":"mapExample","dataType":"map","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"{}","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":374,"svcOperationCfsParam":"jsonExample","label":"jsonExample","dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/1/93.json b/artifacts/api-meta/dev/operations/1/93.json new file mode 100644 index 0000000..7a01e60 --- /dev/null +++ b/artifacts/api-meta/dev/operations/1/93.json @@ -0,0 +1 @@ +{"queryDurationMs":75,"svcOperation":{"svcOperationId":93,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/dummy/job/Service/job/suspend/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":75} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/1/94.json b/artifacts/api-meta/dev/operations/1/94.json new file mode 100644 index 0000000..142d542 --- /dev/null +++ b/artifacts/api-meta/dev/operations/1/94.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svcOperation":{"svcOperationId":94,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/dummy/job/Service/job/resume/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":58} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/100.list b/artifacts/api-meta/dev/operations/100.list new file mode 100644 index 0000000..066a39e --- /dev/null +++ b/artifacts/api-meta/dev/operations/100.list @@ -0,0 +1,2 @@ +delete 42 +create 41 diff --git a/artifacts/api-meta/dev/operations/100/41.json b/artifacts/api-meta/dev/operations/100/41.json new file mode 100644 index 0000000..1d9860c --- /dev/null +++ b/artifacts/api-meta/dev/operations/100/41.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":41,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/tenantOpenwhisk/job/serviceCreate/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":64,"svcOperationCfsParam":"username","label":"Имя пользователя Openwhisk","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя пользователя Openwhisk","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":281,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/100/42.json b/artifacts/api-meta/dev/operations/100/42.json new file mode 100644 index 0000000..2a09c81 --- /dev/null +++ b/artifacts/api-meta/dev/operations/100/42.json @@ -0,0 +1 @@ +{"queryDurationMs":62,"svcOperation":{"svcOperationId":42,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/tenantOpenwhisk/job/serviceDelete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":65,"svcOperationCfsParam":"username","label":"Имя пользователя Openwhisk","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя пользователя Openwhisk","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":62} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/109.list b/artifacts/api-meta/dev/operations/109.list new file mode 100644 index 0000000..e69de29 diff --git a/artifacts/api-meta/dev/operations/110.list b/artifacts/api-meta/dev/operations/110.list new file mode 100644 index 0000000..b4f7f00 --- /dev/null +++ b/artifacts/api-meta/dev/operations/110.list @@ -0,0 +1,2 @@ +create 43 +delete 44 diff --git a/artifacts/api-meta/dev/operations/110/43.json b/artifacts/api-meta/dev/operations/110/43.json new file mode 100644 index 0000000..c4343ee --- /dev/null +++ b/artifacts/api-meta/dev/operations/110/43.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":43,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/powerdns/job/Zones/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":66,"svcOperationCfsParam":"zoneEmail","label":"Контактный e-mail","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Контактный e-mail","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":67,"svcOperationCfsParam":"zoneName","label":"Имя зоны","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^([a-z0-9-]+\\.)+[a-z0-9-]+$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя зоны","man":"Имя зоны","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":68,"svcOperationCfsParam":"zoneKind","label":"Тип зоны","dataType":"string","valueList":["NATIVE","SLAVE"],"refSvcId":null,"isRequired":true,"defaultValue":"NATIVE","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Тип зоны","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":69,"svcOperationCfsParam":"zoneMastersForSlave","label":"Мастер-сервера (kind: SLAVE)","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Использовать если выбран тип SLAVE. IP адреса в формате через пробел для настройки Master-серверов","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":70,"svcOperationCfsParam":"zoneTimeToRefresh","label":"Time To Refresh","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"86400","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Время ожидания ответа вторичного DNS перед запросом SOA-записи с первичных серверов","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":71,"svcOperationCfsParam":"zoneTimeToRetry","label":"Time To Retry","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"7200","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Время в течение которого сервер повторно попробует синхронизировать информацию с первичных DNS-серверов","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":72,"svcOperationCfsParam":"zoneTimeToExpire","label":"Time To Expire","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"3600000","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Время в течение которого вторичный DNS будет пытаться завершить синхронизацию зоны с первичным","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":73,"svcOperationCfsParam":"zoneTimeToLive","label":"Time To Live","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"86400","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Время, в течение которого информация будет кешироваться другими DNS-серверами","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":284,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/110/44.json b/artifacts/api-meta/dev/operations/110/44.json new file mode 100644 index 0000000..dba00b2 --- /dev/null +++ b/artifacts/api-meta/dev/operations/110/44.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":44,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/powerdns/job/Zones/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/111.list b/artifacts/api-meta/dev/operations/111.list new file mode 100644 index 0000000..7d8e9e8 --- /dev/null +++ b/artifacts/api-meta/dev/operations/111.list @@ -0,0 +1,3 @@ +delete 46 +create 45 +modify 90 diff --git a/artifacts/api-meta/dev/operations/111/45.json b/artifacts/api-meta/dev/operations/111/45.json new file mode 100644 index 0000000..72049aa --- /dev/null +++ b/artifacts/api-meta/dev/operations/111/45.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":45,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/powerdns/job/Records/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":75,"svcOperationCfsParam":"zoneUid","label":"UUID Зоны","dataType":"uuid","valueList":null,"refSvcId":110,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID экземпляра услуги DNS-зоны","man":"UUID экземпляра услуги DNS-зоны","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":76,"svcOperationCfsParam":"recordType","label":"Тип DNS-записи","dataType":"string","valueList":["A","AAAA","CNAME","MX","PTR","SOA","SRV","TXT","LUA","NS","SSHFP"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Тип DNS-записи","man":"Тип DNS-записи","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":77,"svcOperationCfsParam":"recordName","label":"Имя записи","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":"parent","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя записи. Имя зоны в конце проставляется автоматически","man":"Имя записи. Имя зоны в конце проставляется автоматически","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":78,"svcOperationCfsParam":"recordInput","label":"Значение записи","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Значение. Необходима валидация, в зависимости от типа записи. Должно быть заменено на UUID-внешнийIP","man":"Значение. Необходима валидация, в зависимости от типа записи. Должно быть заменено на UUID-внешнийIP","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":450,"svcOperationCfsParam":"recordTTL","label":"TTL записи (в секундах)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"3600","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":604800,"minvalue":30,"descr":"Time-to-Leave записи. Раз в какое время запись будет обновлена","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/111/46.json b/artifacts/api-meta/dev/operations/111/46.json new file mode 100644 index 0000000..690ebd7 --- /dev/null +++ b/artifacts/api-meta/dev/operations/111/46.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":46,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/powerdns/job/Records/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/111/90.json b/artifacts/api-meta/dev/operations/111/90.json new file mode 100644 index 0000000..219422d --- /dev/null +++ b/artifacts/api-meta/dev/operations/111/90.json @@ -0,0 +1 @@ +{"queryDurationMs":61,"svcOperation":{"svcOperationId":90,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/powerdns/job/Records/job/modify/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":256,"svcOperationCfsParam":"recordInput","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Запись. Необходима валидация, в зависимости от типа записи. Должно быть заменено на UUID-внешнийIP","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":62} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/112.list b/artifacts/api-meta/dev/operations/112.list new file mode 100644 index 0000000..4a65672 --- /dev/null +++ b/artifacts/api-meta/dev/operations/112.list @@ -0,0 +1,3 @@ +create 84 +delete 86 +modify 87 diff --git a/artifacts/api-meta/dev/operations/112/84.json b/artifacts/api-meta/dev/operations/112/84.json new file mode 100644 index 0000000..c6c7a04 --- /dev/null +++ b/artifacts/api-meta/dev/operations/112/84.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":84,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/grafana/job/Tenant/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":239,"svcOperationCfsParam":"grafanaOrgName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^WZ[\\d]+$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"WZ-Код клиента","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":240,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/112/86.json b/artifacts/api-meta/dev/operations/112/86.json new file mode 100644 index 0000000..3065050 --- /dev/null +++ b/artifacts/api-meta/dev/operations/112/86.json @@ -0,0 +1 @@ +{"queryDurationMs":59,"svcOperation":{"svcOperationId":86,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/grafana/job/Tenant/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/112/87.json b/artifacts/api-meta/dev/operations/112/87.json new file mode 100644 index 0000000..aebbdbc --- /dev/null +++ b/artifacts/api-meta/dev/operations/112/87.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":87,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/grafana/job/Tenant/job/modify/job/master/buildWithParameters","descr":"Просто удаляет все текущие датасоурсы и ставит их заново
Полезно, когда нужно "ресетнуть" / "добавить"","man":"Просто удаляет все текущие датасоурсы и ставит их заново
Полезно, когда нужно "ресетнуть" / "добавить"","cfsParams":[]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/113.list b/artifacts/api-meta/dev/operations/113.list new file mode 100644 index 0000000..3be4518 --- /dev/null +++ b/artifacts/api-meta/dev/operations/113.list @@ -0,0 +1 @@ +create 107 diff --git a/artifacts/api-meta/dev/operations/113/107.json b/artifacts/api-meta/dev/operations/113/107.json new file mode 100644 index 0000000..edb67b0 --- /dev/null +++ b/artifacts/api-meta/dev/operations/113/107.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":107,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/vcComplex/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":332,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование ресурсной платформы","sort":1,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":334,"svcOperationCfsParam":"vappName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя vApp","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":401,"svcOperationCfsParam":"cpuGuaranteed","label":null,"dataType":"integer > 0","valueList":["20","50","80"],"refSvcId":null,"isRequired":true,"defaultValue":"20","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":566,"svcOperationCfsParam":"cpuAllocated","label":"Сколько аллоцировать на VDC ЯДЕР","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1,"descr":"шт","man":null,"sort":21,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":402,"svcOperationCfsParam":"memGuaranteed","label":null,"dataType":"integer > 0","valueList":["20","50","80"],"refSvcId":null,"isRequired":true,"defaultValue":"20","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":567,"svcOperationCfsParam":"memAllocated","label":"Сколько аллоцировать на VDC ОЗУ","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1,"descr":"gb","man":null,"sort":31,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":404,"svcOperationCfsParam":"needExternalAddressSNAT","label":"Выделить VIP для SNAT","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP на Edge. Используется для SNAT всего трафика","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":405,"svcOperationCfsParam":"needEnableAVI","label":"Включить ALB","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает AVI в Cloud Director","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":403,"svcOperationCfsParam":"segroupName","label":"Наименование segroup","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"SEGROUP-SANDBOX-CL1-SHARED-01","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Наименование segroup, в котором будут выделяться пулы на AVI","man":null,"sort":100,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":359,"svcOperationCfsParam":"virtualServicesCount","label":"Кол-во VS на AVI","dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4,"minvalue":1,"descr":"Кол-во виртуальных сервисов, которые выделяются на AVI. Во избежании коллапса пока выделяется до 4","man":null,"sort":110,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":400,"svcOperationCfsParam":"vdcNetworkPool","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"nsxt-sandbox-geneve-np","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":120,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":360,"svcOperationCfsParam":"ipSpaceName","label":"ip Space для VIP","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"internet-ipv4-v1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ip Space для внешнего IP. Целесообразнее брать самый дешёвый, так как это vip для исходящего трафика. Необходимо задавать если включен needExternalAddressSNAT","man":null,"sort":130,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":568,"svcOperationCfsParam":"vIPCount","label":"Кол-во зарезервированных внешних Ip","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":20,"minvalue":0,"descr":"шт","man":null,"sort":131,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":358,"svcOperationCfsParam":"vdcProviderGateway","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"sandbox-v1cl1-pvdc","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Взять из свойств ресурсной платформы.
Путь .vcd.providerVdc - взять KEY

providerGateway Cloud Director. Влияет ресурсы будут предоставлены. Является полем (List<String>) в свойствах рес. платформы ЛК, но сам параметр передаётся только как один String","man":null,"sort":200,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":399,"svcOperationCfsParam":"storageConfig","label":"Конфигурация Storage","dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[{\"name\": \"\", \"size\": 1024}]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Описывается как массив объектов, где описывается имя политики и её размер","man":null,"sort":210,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/115.list b/artifacts/api-meta/dev/operations/115.list new file mode 100644 index 0000000..26bd5be --- /dev/null +++ b/artifacts/api-meta/dev/operations/115.list @@ -0,0 +1,9 @@ +modify 142 +delete_user 247 +create_database 242 +delete_database 248 +create 138 +create_user 243 +delete 139 +suspend 140 +resume 141 diff --git a/artifacts/api-meta/dev/operations/115/138.json b/artifacts/api-meta/dev/operations/115/138.json new file mode 100644 index 0000000..84068bf --- /dev/null +++ b/artifacts/api-meta/dev/operations/115/138.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":138,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Mariadb/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":422,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":459,"svcOperationCfsParam":"s3Uid","label":"Услуга S3 для резервных копий","dataType":"uuid","valueList":null,"refSvcId":12,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Экземпляр (учетная запись) S3 для резервного копирования. Резервное копирование обязательно","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":424,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":500,"descr":"Квота ядра пода (milicores)","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":425,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1024","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":1024,"descr":"Квота памяти пода (MBytes)","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":426,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":427,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":428,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделение белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний (белый) IP для доступа к master","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":429,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации VIP master","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":430,"svcOperationCfsParam":"ext_BACKUP_SCHEDULE","label":"Расписание резервного копирования","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"0 * * * *","defaultCompute":null,"func":null,"regex":"^(\\*|(\\d+|\\*\\/\\d+|\\d+(,\\d+)*))\\s\\*\\s\\*\\s\\*\\s\\*$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Не обязательный. Время запуска бекапа","man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":431,"svcOperationCfsParam":"appVersion","label":"Версия MySQL","dataType":"string","valueList":["8.4.0","9.4.0"],"refSvcId":null,"isRequired":true,"defaultValue":"9.4.0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия MySQL","man":null,"sort":100,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":432,"svcOperationCfsParam":"autoScale","label":"Включить autoScale","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает автоскейлинг PV. При включении параметра необходимо настроить autoScalePercentage и autoScaleTechWindow. Алерт при срабатывании вызывает modify у текущей услуги","man":null,"sort":310,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":433,"svcOperationCfsParam":"autoScalePercentage","label":"На сколько % расширяться диск (мин. 1G)","dataType":"integer > 0","valueList":["10","15","20"],"refSvcId":null,"isRequired":false,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Требует включения autoScale. Позволяет указать в процентах расширение от текущего макс объема","man":null,"sort":320,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":434,"svcOperationCfsParam":"autoScaleTechWindow","label":"Тех окно обновления дисков","dataType":"integer >= 0","valueList":["0","5","12","23"],"refSvcId":null,"isRequired":false,"defaultValue":"0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Требует включения autoScale. Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23)","man":null,"sort":330,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":435,"svcOperationCfsParam":"autoScaleQuotaGb","label":"Квота для autoScale","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Квота для autoScale","man":null,"sort":340,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/115/139.json b/artifacts/api-meta/dev/operations/115/139.json new file mode 100644 index 0000000..8cfc402 --- /dev/null +++ b/artifacts/api-meta/dev/operations/115/139.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":139,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Mariadb/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":456,"svcOperationCfsParam":"deleteS3Bucket","label":"Также удалить технический S3 Bucket с бэкапами?","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Также удалить технический S3 Bucket с бэкапами?","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/115/140.json b/artifacts/api-meta/dev/operations/115/140.json new file mode 100644 index 0000000..974aa0f --- /dev/null +++ b/artifacts/api-meta/dev/operations/115/140.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":140,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Mariadb/job/suspend/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/115/141.json b/artifacts/api-meta/dev/operations/115/141.json new file mode 100644 index 0000000..b03f83a --- /dev/null +++ b/artifacts/api-meta/dev/operations/115/141.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":141,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Mariadb/job/resume/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/115/142.json b/artifacts/api-meta/dev/operations/115/142.json new file mode 100644 index 0000000..87c3587 --- /dev/null +++ b/artifacts/api-meta/dev/operations/115/142.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":142,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Mariadb/job/modify/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":436,"svcOperationCfsParam":"resourceCPU","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":437,"svcOperationCfsParam":"resourceMemory","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":438,"svcOperationCfsParam":"resourceInstances","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":439,"svcOperationCfsParam":"resourceDisk","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":440,"svcOperationCfsParam":"needExternalAddressMaster","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":441,"svcOperationCfsParam":"ipSpaceNameMaster","label":null,"dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":442,"svcOperationCfsParam":"ext_BACKUP_SCHEDULE","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":443,"svcOperationCfsParam":"autoScale","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":444,"svcOperationCfsParam":"autoScalePercentage","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":445,"svcOperationCfsParam":"autoScaleTechWindow","label":null,"dataType":"integer >= 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":446,"svcOperationCfsParam":"autoScaleQuotaGb","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/115/242.json b/artifacts/api-meta/dev/operations/115/242.json new file mode 100644 index 0000000..49ddf98 --- /dev/null +++ b/artifacts/api-meta/dev/operations/115/242.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":242,"operation":"create_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Mariadb/job/create_database/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":734,"svcOperationCfsParam":"databaseName","label":"Имя базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `db01`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/115/243.json b/artifacts/api-meta/dev/operations/115/243.json new file mode 100644 index 0000000..56296cc --- /dev/null +++ b/artifacts/api-meta/dev/operations/115/243.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":243,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Mariadb/job/create_user/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":735,"svcOperationCfsParam":"username","label":"Имя пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?![0-9_])[a-zA-Z_][a-zA-Z0-9_]{0,62}$","uniqueScope":null,"maxlength":62,"minlength":2,"maxvalue":null,"minvalue":null,"descr":"Пример: `myusername`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":736,"svcOperationCfsParam":"password","label":"Пароль пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":62,"minlength":10,"maxvalue":null,"minvalue":null,"descr":"Секрет будет записан в хранилище секретов и не будет отображаться публично","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":true},{"svcOperationCfsParamId":737,"svcOperationCfsParam":"databaseName","label":"Список баз данных, к которым будет предоставлен доступ","dataType":"array-map-fixed","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходимо указать массив существующих баз","man":"Если базы не существует - при выполнении операции вернётся ошибка","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":738,"svcOperationCfsParam":"accessHosts","label":"Список хостов, с которых разрешено подключение к Mariadb от лица пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `%`","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/115/247.json b/artifacts/api-meta/dev/operations/115/247.json new file mode 100644 index 0000000..66bfe04 --- /dev/null +++ b/artifacts/api-meta/dev/operations/115/247.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":247,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Mariadb/job/delete_user/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":744,"svcOperationCfsParam":"username","label":"Имя пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя пользователя, созданное через операцию `create_user`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/115/248.json b/artifacts/api-meta/dev/operations/115/248.json new file mode 100644 index 0000000..d5d1d90 --- /dev/null +++ b/artifacts/api-meta/dev/operations/115/248.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":248,"operation":"delete_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Mariadb/job/delete_database/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":745,"svcOperationCfsParam":"databaseName","label":"Имя базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"ВСЕ ДАННЫЕ ВНУТРИ БД БУДУТ УДАЛЕНЫ","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/116.list b/artifacts/api-meta/dev/operations/116.list new file mode 100644 index 0000000..55919a4 --- /dev/null +++ b/artifacts/api-meta/dev/operations/116.list @@ -0,0 +1,11 @@ +create_topic 165 +suspend 160 +modify_topic 166 +resume 161 +delete_topic 167 +create 148 +modify 162 +create_user 168 +delete 149 +modify_user 169 +delete_user 170 diff --git a/artifacts/api-meta/dev/operations/116/148.json b/artifacts/api-meta/dev/operations/116/148.json new file mode 100644 index 0000000..cfec88a --- /dev/null +++ b/artifacts/api-meta/dev/operations/116/148.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":148,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/create/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":469,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать платформу из списка","man":null,"sort":5,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":461,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов в сети","dataType":"integer > 0","valueList":["1","2","3","4","5"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1,"descr":"Пример: `2`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":462,"svcOperationCfsParam":"resourceMemory","label":"Квота(megabyte) памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1000,"descr":"Пример: `2048`","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":463,"svcOperationCfsParam":"resourceCPU","label":"Квота(millicore ) ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1000,"descr":"Пример: `2000`","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":464,"svcOperationCfsParam":"resourceDisk","label":"Размер(gigabyte) диска для базы данных","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `20`","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":465,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделяет внешний IP для доступа к master","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-брокеру. Пример: `true` или `false`","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":466,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации внешнего IP","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/116/149.json b/artifacts/api-meta/dev/operations/116/149.json new file mode 100644 index 0000000..8cad472 --- /dev/null +++ b/artifacts/api-meta/dev/operations/116/149.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":149,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/delete/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/116/160.json b/artifacts/api-meta/dev/operations/116/160.json new file mode 100644 index 0000000..09122f2 --- /dev/null +++ b/artifacts/api-meta/dev/operations/116/160.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":160,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/suspend/job/","descr":null,"man":null,"cfsParams":[]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/116/161.json b/artifacts/api-meta/dev/operations/116/161.json new file mode 100644 index 0000000..2ae3818 --- /dev/null +++ b/artifacts/api-meta/dev/operations/116/161.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":161,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/resume/job/","descr":null,"man":null,"cfsParams":[]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/116/162.json b/artifacts/api-meta/dev/operations/116/162.json new file mode 100644 index 0000000..956fcf3 --- /dev/null +++ b/artifacts/api-meta/dev/operations/116/162.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":162,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/modify/job/","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":501,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов в сети","dataType":"integer > 0","valueList":["1","2","3","4","5"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `2`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":502,"svcOperationCfsParam":"resourceMemory","label":"Квота(megabyte) памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1000,"descr":"Пример: `2048`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":503,"svcOperationCfsParam":"resourceCPU","label":"Квота(millicore ) ядра пода","dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1000,"descr":"Пример: `2000`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":504,"svcOperationCfsParam":"resourceDisk","label":"Размер(gigabyte) диска для базы данных","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `20`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":505,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделяет внешний IP для доступа к master.","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-брокеру. Пример: `true` или `false`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":506,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации внешнего IP","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/116/165.json b/artifacts/api-meta/dev/operations/116/165.json new file mode 100644 index 0000000..a46a821 --- /dev/null +++ b/artifacts/api-meta/dev/operations/116/165.json @@ -0,0 +1 @@ +{"queryDurationMs":64,"svcOperation":{"svcOperationId":165,"operation":"create_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/create_topic/job/","descr":null,"man":"# Инструкция по управлению топиками Apache Kafka через платформу

## 1. Общая информация

---

Топик — это основная сущность в Apache Kafka, предназначенная для приёма сообщений от продюсеров и передачи их консюмерам.
Платформа позволяет создавать, удалять и изменять параметры топиков без прямого доступа к брокерам, обеспечивая удобное управление через интерфейс или API.

---

## Доступные операции

- **create_topic** — Создание топика
- **modify_topic** — Модификация топика
- **delete_topic** — Удаление топика

---

## 2. Параметры создания топика

Ниже перечислены параметры, которые необходимо указать при создании нового топика:

* **Имя топика**
Название топика.
Должно быть уникальным в пределах кластера.
Пример: `orders-events`.

* **Партиции**
Количество партиций топика.
Рекомендуется выбирать с учётом уровня параллелизма потребителей и предполагаемой нагрузки.
Пример: `6`. Здесь важно рассказать о том как происходит расчет оптимального количества
Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.

* **Реплики**
Количество реплик для каждой партиции.
Обычно равно количеству доступных брокеров или меньше.
Пример: `3`.


---

## 4. Параметры модификации топика

Для уже существующих топиков можно изменять параметры. Все параметры являются опциональными:

* **Имя топика**
Название топика.
Пример: `orders-events`.

* **Партиции**
Новое количество партиций.
Пример: `12`.

* **Реплики**
Новое количество реплик.
Пример: `2`.

---

## 5. Рекомендации

* Планируйте количество партиций с запасом — уменьшение их числа невозможно.
* Количество реплик должно соответствовать требуемому уровню отказоустойчивости, но не превышать количество брокеров.
* Изменение параметров топика в рабочем окружении может временно влиять на производительность. Рекомендуется проводить крупные изменения в периоды минимальной нагрузки.

---","cfsParams":[{"svcOperationCfsParamId":523,"svcOperationCfsParam":"nameTopic","label":"Название топика","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":525,"svcOperationCfsParam":"replicas","label":"Количество реплик для топика","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Количество реплик не может привышать количество реплик брокера","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":524,"svcOperationCfsParam":"partitions","label":"Количество партиций топика","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Число партиций можно увеличить, но уменьшить их нельзя.","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":65} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/116/166.json b/artifacts/api-meta/dev/operations/116/166.json new file mode 100644 index 0000000..c022331 --- /dev/null +++ b/artifacts/api-meta/dev/operations/116/166.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":166,"operation":"modify_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/modify_topic/job/","descr":null,"man":"# Инструкция по управлению топиками Apache Kafka через платформу

## 1. Общая информация

---

Топик — это основная сущность в Apache Kafka, предназначенная для приёма сообщений от продюсеров и передачи их консюмерам.
Платформа позволяет создавать, удалять и изменять параметры топиков без прямого доступа к брокерам, обеспечивая удобное управление через интерфейс или API.

---

## Доступные операции

- **create_topic** — Создание топика
- **modify_topic** — Модификация топика
- **delete_topic** — Удаление топика

---

## 2. Параметры создания топика

Ниже перечислены параметры, которые необходимо указать при создании нового топика:

* **Имя топика**
Название топика.
Должно быть уникальным в пределах кластера.
Пример: `orders-events`.

* **Партиции**
Количество партиций топика.
Рекомендуется выбирать с учётом уровня параллелизма потребителей и предполагаемой нагрузки.
Пример: `6`. Здесь важно рассказать о том как происходит расчет оптимального количества
Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.

* **Реплики**
Количество реплик для каждой партиции.
Обычно равно количеству доступных брокеров или меньше.
Пример: `3`.


---

## 4. Параметры модификации топика

Для уже существующих топиков можно изменять параметры. Все параметры являются опциональными:

* **Имя топика**
Название топика.
Пример: `orders-events`.

* **Партиции**
Новое количество партиций.
Пример: `12`.

* **Реплики**
Новое количество реплик.
Пример: `2`.

---

## 5. Рекомендации

* Планируйте количество партиций с запасом — уменьшение их числа невозможно.
* Количество реплик должно соответствовать требуемому уровню отказоустойчивости, но не превышать количество брокеров.
* Изменение параметров топика в рабочем окружении может временно влиять на производительность. Рекомендуется проводить крупные изменения в периоды минимальной нагрузки.

---","cfsParams":[{"svcOperationCfsParamId":526,"svcOperationCfsParam":"nameTopic","label":"Название топика","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":528,"svcOperationCfsParam":"replicas","label":"Количество реплик для топика","dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Количество партиций ≤ (число брокеров). Пример `2`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":527,"svcOperationCfsParam":"partitions","label":"Количество партиций топика","dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Число партиций на кластер ≤ 100 × (число брокеров) × (фактор репликации). Пример `50`","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/116/167.json b/artifacts/api-meta/dev/operations/116/167.json new file mode 100644 index 0000000..5f007bb --- /dev/null +++ b/artifacts/api-meta/dev/operations/116/167.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":167,"operation":"delete_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/delete_topic/job/","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":529,"svcOperationCfsParam":"nameTopic","label":"Название топика","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходимо выбрать топик, который необходимо удалить","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/116/168.json b/artifacts/api-meta/dev/operations/116/168.json new file mode 100644 index 0000000..486e238 --- /dev/null +++ b/artifacts/api-meta/dev/operations/116/168.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svcOperation":{"svcOperationId":168,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/create_user/job/","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.

---

## 1. Общая информация

Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.
Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.
Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.

---

## Доступные операции

- **create_user** — Создание пользователя
- **modify_user** — Модификация пользователя
- **delete_user** — Удаление пользователя

---

## 2. Параметры создания пользователя

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

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 3. Параметры модификации пользователя

Ниже перечислены параметры, которые необходимо указать при модификации пользователя:

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 4. Параметры удалении пользователя

Ниже перечислены параметры, которые необходимо указать при удалении пользователя:

* **Имя пользователя**
Имя удаляемого пользователя.
Пример: `username-admin`

## 5. Выходные параметры

После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:

* **ca.crt**
Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.
Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **ca.p12**
PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.p12
```

* **ca.password**
Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

* **user.crt**
Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.
Используется совместно с приватным ключом `user.key` для аутентификации.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **user.key**
Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.key
```

* **user.p12**
PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo "<содержание поля>" | base64 -d > <название>.p12
```

* **user.password**
Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

Эти параметры используются для настройки TLS-подключения.

---

## 6. Пример конфигурации клиента внутри кластера

Пример пода:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: kafka-4
spec:
volumes:
- name: work
emptyDir: {}
containers:
- name: kcat
image: quay.io/strimzi/kafka:latest-kafka-4.0.0
command: ["sleep", "5600"]
volumeMounts:
- name: work
mountPath: /work
restartPolicy: Never
```

Создаём под и сохраняем сертификаты:

```bash
kubectl cp user.p12 kafka-4:/work/
kubectl cp ca.p12 kafka-4:/work/
```

Создаём файлы конфигурации:

```bash
cat > /work/user-read.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

```bash
cat > /work/user-write.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user-write.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

Листинг доступных топиков:

```bash
/opt/kafka/bin/kafka-topics.sh \\
--bootstrap-server kafkak8s-bootstrap-external:9093 \\
--command-config /work/user-read.properties \\
--list
```

Запись сообщений:

```bash
/opt/kafka/bin/kafka-console-producer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--producer.config /work/user-write.properties
```

Чтение сообщений:

```bash
/opt/kafka/bin/kafka-console-consumer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--from-beginning \\
--group <group> \\
--consumer.config /work/user-read.properties \\
--max-messages 50
```

---

## 7. Пример внешнего подключения с использованием **kcat**

**Листинг топиков**

```bash
kcat -b <externalConnect.bootstrap.fqdn>:9093 \\
-L \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Запись сообщения**

```bash
echo "hello from kcat" | kcat -P \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-write.crt \\
-X ssl.key.location=./user-write.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Чтение сообщений**

```bash
kcat -C \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-o beginning \\
-q \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

---


## 9. Рекомендации

* Минимизируйте набор разрешённых операций для повышения безопасности.
* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.
* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.
* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.

---","cfsParams":[{"svcOperationCfsParamId":530,"svcOperationCfsParam":"username","label":"Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `username-admin`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":531,"svcOperationCfsParam":"nameTopic","label":"Название топика, к которому будут назначены права для создоваемого пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`. Использовать маску нельзя(`orders*`), только полное название или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":532,"svcOperationCfsParam":"operations","label":"Список операций, которые разрешены пользователю на топике","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `Create, Describe, Read, Write`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":533,"svcOperationCfsParam":"group","label":"Группа, которым разрешён доступ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `order-consumers` или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":534,"svcOperationCfsParam":"accessHosts","label":"Список хостов, с которых разрешено подключение к Kafka","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `192.168.1.0/24` или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/116/169.json b/artifacts/api-meta/dev/operations/116/169.json new file mode 100644 index 0000000..754c7e4 --- /dev/null +++ b/artifacts/api-meta/dev/operations/116/169.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":169,"operation":"modify_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/modify_user/job/","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.

---

## 1. Общая информация

Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.
Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.
Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.

---

## Доступные операции

- **create_user** — Создание пользователя
- **modify_user** — Модификация пользователя
- **delete_user** — Удаление пользователя

---

## 2. Параметры создания пользователя

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

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 3. Параметры модификации пользователя

Ниже перечислены параметры, которые необходимо указать при модификации пользователя:

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 4. Параметры удалении пользователя

Ниже перечислены параметры, которые необходимо указать при удалении пользователя:

* **Имя пользователя**
Имя удаляемого пользователя.
Пример: `username-admin`

## 5. Выходные параметры

После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:

* **ca.crt**
Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.
Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **ca.p12**
PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.p12
```

* **ca.password**
Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

* **user.crt**
Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.
Используется совместно с приватным ключом `user.key` для аутентификации.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **user.key**
Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.key
```

* **user.p12**
PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo "<содержание поля>" | base64 -d > <название>.p12
```

* **user.password**
Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

Эти параметры используются для настройки TLS-подключения.

---

## 6. Пример конфигурации клиента внутри кластера

Пример пода:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: kafka-4
spec:
volumes:
- name: work
emptyDir: {}
containers:
- name: kcat
image: quay.io/strimzi/kafka:latest-kafka-4.0.0
command: ["sleep", "5600"]
volumeMounts:
- name: work
mountPath: /work
restartPolicy: Never
```

Создаём под и сохраняем сертификаты:

```bash
kubectl cp user.p12 kafka-4:/work/
kubectl cp ca.p12 kafka-4:/work/
```

Создаём файлы конфигурации:

```bash
cat > /work/user-read.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

```bash
cat > /work/user-write.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user-write.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

Листинг доступных топиков:

```bash
/opt/kafka/bin/kafka-topics.sh \\
--bootstrap-server kafkak8s-bootstrap-external:9093 \\
--command-config /work/user-read.properties \\
--list
```

Запись сообщений:

```bash
/opt/kafka/bin/kafka-console-producer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--producer.config /work/user-write.properties
```

Чтение сообщений:

```bash
/opt/kafka/bin/kafka-console-consumer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--from-beginning \\
--group <group> \\
--consumer.config /work/user-read.properties \\
--max-messages 50
```

---

## 7. Пример внешнего подключения с использованием **kcat**

**Листинг топиков**

```bash
kcat -b <externalConnect.bootstrap.fqdn>:9093 \\
-L \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Запись сообщения**

```bash
echo "hello from kcat" | kcat -P \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-write.crt \\
-X ssl.key.location=./user-write.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Чтение сообщений**

```bash
kcat -C \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-o beginning \\
-q \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

---


## 9. Рекомендации

* Минимизируйте набор разрешённых операций для повышения безопасности.
* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.
* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.
* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.

---","cfsParams":[{"svcOperationCfsParamId":539,"svcOperationCfsParam":"username","label":"Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `username-admin`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":535,"svcOperationCfsParam":"nameTopic","label":"Название топика (topic), к которому будут назначены права для указанного пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`. Использовать маску нельзя(`orders*`), только полное название или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":536,"svcOperationCfsParam":"operations","label":"Список операций, которые разрешены пользователю на топике","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `Create, Describe, Read, Write`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":537,"svcOperationCfsParam":"group","label":"Группа, которым разрешён доступ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `order-consumers` или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":538,"svcOperationCfsParam":"accessHosts","label":"Список хостов, с которых разрешено подключение к Kafka","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `192.168.1.0/24` или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/116/170.json b/artifacts/api-meta/dev/operations/116/170.json new file mode 100644 index 0000000..7082229 --- /dev/null +++ b/artifacts/api-meta/dev/operations/116/170.json @@ -0,0 +1 @@ +{"queryDurationMs":47,"svcOperation":{"svcOperationId":170,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/delete_user/job/","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.

---

## 1. Общая информация

Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.
Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.
Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.

---

## Доступные операции

- **create_user** — Создание пользователя
- **modify_user** — Модификация пользователя
- **delete_user** — Удаление пользователя

---

## 2. Параметры создания пользователя

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

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 3. Параметры модификации пользователя

Ниже перечислены параметры, которые необходимо указать при модификации пользователя:

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 4. Параметры удалении пользователя

Ниже перечислены параметры, которые необходимо указать при удалении пользователя:

* **Имя пользователя**
Имя удаляемого пользователя.
Пример: `username-admin`

## 5. Выходные параметры

После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:

* **ca.crt**
Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.
Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **ca.p12**
PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.p12
```

* **ca.password**
Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

* **user.crt**
Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.
Используется совместно с приватным ключом `user.key` для аутентификации.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **user.key**
Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.key
```

* **user.p12**
PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo "<содержание поля>" | base64 -d > <название>.p12
```

* **user.password**
Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

Эти параметры используются для настройки TLS-подключения.

---

## 6. Пример конфигурации клиента внутри кластера

Пример пода:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: kafka-4
spec:
volumes:
- name: work
emptyDir: {}
containers:
- name: kcat
image: quay.io/strimzi/kafka:latest-kafka-4.0.0
command: ["sleep", "5600"]
volumeMounts:
- name: work
mountPath: /work
restartPolicy: Never
```

Создаём под и сохраняем сертификаты:

```bash
kubectl cp user.p12 kafka-4:/work/
kubectl cp ca.p12 kafka-4:/work/
```

Создаём файлы конфигурации:

```bash
cat > /work/user-read.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

```bash
cat > /work/user-write.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user-write.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

Листинг доступных топиков:

```bash
/opt/kafka/bin/kafka-topics.sh \\
--bootstrap-server kafkak8s-bootstrap-external:9093 \\
--command-config /work/user-read.properties \\
--list
```

Запись сообщений:

```bash
/opt/kafka/bin/kafka-console-producer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--producer.config /work/user-write.properties
```

Чтение сообщений:

```bash
/opt/kafka/bin/kafka-console-consumer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--from-beginning \\
--group <group> \\
--consumer.config /work/user-read.properties \\
--max-messages 50
```

---

## 7. Пример внешнего подключения с использованием **kcat**

**Листинг топиков**

```bash
kcat -b <externalConnect.bootstrap.fqdn>:9093 \\
-L \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Запись сообщения**

```bash
echo "hello from kcat" | kcat -P \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-write.crt \\
-X ssl.key.location=./user-write.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Чтение сообщений**

```bash
kcat -C \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-o beginning \\
-q \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

---


## 9. Рекомендации

* Минимизируйте набор разрешённых операций для повышения безопасности.
* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.
* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.
* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.

---","cfsParams":[{"svcOperationCfsParamId":540,"svcOperationCfsParam":"username","label":"Имя удаляемого пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `username-admin`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":47} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/119.list b/artifacts/api-meta/dev/operations/119.list new file mode 100644 index 0000000..066ae75 --- /dev/null +++ b/artifacts/api-meta/dev/operations/119.list @@ -0,0 +1,5 @@ +suspend 177 +resume 178 +modify 180 +create 175 +delete 176 diff --git a/artifacts/api-meta/dev/operations/119/175.json b/artifacts/api-meta/dev/operations/119/175.json new file mode 100644 index 0000000..6a9ee61 --- /dev/null +++ b/artifacts/api-meta/dev/operations/119/175.json @@ -0,0 +1 @@ +{"queryDurationMs":47,"svcOperation":{"svcOperationId":175,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Akhq/job/create/job/","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":555,"svcOperationCfsParam":"kafkaUid","label":"Кластер Kafka к которому нужно настроить подключение","dataType":"uuid","valueList":null,"refSvcId":116,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать кластер из списка","man":null,"sort":5,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":550,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать платформу из списка","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":554,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов в сети","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1,"descr":null,"man":null,"sort":11,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":551,"svcOperationCfsParam":"resourceMemory","label":"Квота(megabyte) памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":512,"descr":"Пример: `1024`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":552,"svcOperationCfsParam":"resourceCPU","label":"Квота(millicore ) ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":500,"descr":"Пример: `1000`","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":553,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":47} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/119/176.json b/artifacts/api-meta/dev/operations/119/176.json new file mode 100644 index 0000000..f5459f6 --- /dev/null +++ b/artifacts/api-meta/dev/operations/119/176.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":176,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Akhq/job/delete/job/","descr":null,"man":null,"cfsParams":[]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/119/177.json b/artifacts/api-meta/dev/operations/119/177.json new file mode 100644 index 0000000..1fca61c --- /dev/null +++ b/artifacts/api-meta/dev/operations/119/177.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":177,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Akhq/job/suspend/job/","descr":null,"man":null,"cfsParams":[]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/119/178.json b/artifacts/api-meta/dev/operations/119/178.json new file mode 100644 index 0000000..d16aaa9 --- /dev/null +++ b/artifacts/api-meta/dev/operations/119/178.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":178,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Akhq/job/resume/job/","descr":null,"man":null,"cfsParams":[]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/119/180.json b/artifacts/api-meta/dev/operations/119/180.json new file mode 100644 index 0000000..4f99ef3 --- /dev/null +++ b/artifacts/api-meta/dev/operations/119/180.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":180,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Akhq/job/modify/job/","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":565,"svcOperationCfsParam":"kafkaUid","label":"Кластер Kafka к которому нужно настроить подключение","dataType":"uuid","valueList":null,"refSvcId":116,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать кластер из списка","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/12.list b/artifacts/api-meta/dev/operations/12.list new file mode 100644 index 0000000..952a9b4 --- /dev/null +++ b/artifacts/api-meta/dev/operations/12.list @@ -0,0 +1,7 @@ +create 1 +delete 5 +resume 3 +suspend 2 +create_sub_user 6 +delete_sub_user 7 +modify 4 diff --git a/artifacts/api-meta/dev/operations/12/1.json b/artifacts/api-meta/dev/operations/12/1.json new file mode 100644 index 0000000..85f92f5 --- /dev/null +++ b/artifacts/api-meta/dev/operations/12/1.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":1,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/s3/job/Ceph/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":320,"svcOperationCfsParam":"displayName","label":"Человеко-читаемое имя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Человеко-читаемое имя (транслит из Elma) - передаётся имя клиента","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":163,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"кластер S3 для подключения","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/12/2.json b/artifacts/api-meta/dev/operations/12/2.json new file mode 100644 index 0000000..9212e90 --- /dev/null +++ b/artifacts/api-meta/dev/operations/12/2.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":2,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/s3/job/Ceph/job/suspend/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/12/3.json b/artifacts/api-meta/dev/operations/12/3.json new file mode 100644 index 0000000..ac04c16 --- /dev/null +++ b/artifacts/api-meta/dev/operations/12/3.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":3,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/s3/job/Ceph/job/resume/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/12/4.json b/artifacts/api-meta/dev/operations/12/4.json new file mode 100644 index 0000000..a1688a9 --- /dev/null +++ b/artifacts/api-meta/dev/operations/12/4.json @@ -0,0 +1 @@ +{"queryDurationMs":64,"svcOperation":{"svcOperationId":4,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/s3/job/Ceph/job/modify/job/master/buildWithParameters","descr":"При первичном вызове операции услуга Trial прекращает действие","man":"При первичном вызове операции услуга Trial прекращает действие","cfsParams":[{"svcOperationCfsParamId":50,"svcOperationCfsParam":"maxSizeGbPerUser","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":50000,"minvalue":1,"descr":"maxSizeGb. Передаём руками","man":"maxSizeGb. Передаём руками","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":51,"svcOperationCfsParam":"maxObjectsPerBucket","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":10000000,"minvalue":1,"descr":"Квота на бакет. Кол-во объектов. Передаём руками","man":"Квота на бакет. Кол-во объектов. Передаём руками","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":52,"svcOperationCfsParam":"maxBucketsPerUser","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":1000,"minvalue":1,"descr":"Квота на пользователя. Количество бакетов пользователя. Передаём руками","man":"Квота на пользователя. Количество бакетов пользователя. Передаём руками","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":65} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/12/5.json b/artifacts/api-meta/dev/operations/12/5.json new file mode 100644 index 0000000..4481f8a --- /dev/null +++ b/artifacts/api-meta/dev/operations/12/5.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":5,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/s3/job/Ceph/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/12/6.json b/artifacts/api-meta/dev/operations/12/6.json new file mode 100644 index 0000000..7148d1e --- /dev/null +++ b/artifacts/api-meta/dev/operations/12/6.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":6,"operation":"create_sub_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/s3/job/Ceph/job/create_sub_user/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":60,"svcOperationCfsParam":"subUserName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":61,"svcOperationCfsParam":"subUserAccess","label":null,"dataType":"string","valueList":["read","write","readwrite","full"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/12/7.json b/artifacts/api-meta/dev/operations/12/7.json new file mode 100644 index 0000000..7ddd1ff --- /dev/null +++ b/artifacts/api-meta/dev/operations/12/7.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":7,"operation":"delete_sub_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/s3/job/Ceph/job/delete_sub_user/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":63,"svcOperationCfsParam":"subUserName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"subUserName. По идее услуга уже создана - должен передаваться из ЛК","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/120.list b/artifacts/api-meta/dev/operations/120.list new file mode 100644 index 0000000..1bf5dd9 --- /dev/null +++ b/artifacts/api-meta/dev/operations/120.list @@ -0,0 +1,9 @@ +modify 189 +resume 183 +create_user 185 +create_database 186 +delete_user 187 +delete_database 188 +create 181 +suspend 182 +delete 184 diff --git a/artifacts/api-meta/dev/operations/120/181.json b/artifacts/api-meta/dev/operations/120/181.json new file mode 100644 index 0000000..1885e41 --- /dev/null +++ b/artifacts/api-meta/dev/operations/120/181.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":181,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/ClickHouse/job/create/job/master/buildWithParameters","descr":null,"man":"Операция создания кластера ClickHouse

Для подключения к кластеру также необходимо создать базу данных через операцию `create_database` и создание пользователя через операцию `create_user`","cfsParams":[{"svcOperationCfsParamId":572,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Кластер Kubernetes в котором будет развёрнуто приложение","man":"Выбрать платформу из списка

**Если список не отображается**
обратитесь к сервис менеджеру с вопросом предоставления ресурсной платформы","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":573,"svcOperationCfsParam":"s3Uid","label":"Услуга S3 для резервных копий","dataType":"uuid","valueList":null,"refSvcId":12,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Экземпляр (учетная запись) S3 для резервного копирования. Резервное копирование обязательно","man":"**Если список не отображается**
перейдите в раздел `S3 Object Storage`
операция `create`","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":574,"svcOperationCfsParam":"resourceInstances","label":"Кол-во реплик каждого шарда","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `3`","man":"**Для синхронизации данных между репликами** необходимо включить `Создать ClickHouse-Keeper`","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":575,"svcOperationCfsParam":"resourceInstancesShards","label":"Количество шардов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `1`","man":"**Шард** - это часть данных, разделенная на разные узлы (серверы) для горизонтального масштабирования и обработки больших объемов информации.
**Реплика** - это точная копия данных внутри одного шарда","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":576,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода кластера","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1000","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8000,"minvalue":1000,"descr":"Пример: `1000`","man":"Указывается в Milicores
`1000` Mili == `1` Ядро","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":577,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода кластера","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1536","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":1536,"descr":"Пример: `2048`","man":"Указывается в Megabytes","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":578,"svcOperationCfsParam":"appVersion","label":"Версия ClickHouse-server","dataType":"string","valueList":["25.10"],"refSvcId":null,"isRequired":true,"defaultValue":"25.10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия `clickhouse-server`","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":579,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Пример: `100`","man":"Указывается в Gigabytes","sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":580,"svcOperationCfsParam":"needExternalAddressMaster","label":"Публикация белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Позволяет подключиться извне к ClickHouse","man":"Для выделения IP также необходимо указать имя Ip-space.
Его можно получить из свойств ресурсной платформы","sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":581,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации белого ip master ноды","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `internet-no-antiddos-v1`","man":"Имя ipSpace для публикации внешнего адреса

Не может быть пустым, если включен `Выделение белого ip для master ноды`","sort":100,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":582,"svcOperationCfsParam":"needCreateKeeper","label":"Создать ClickHouse-Keeper","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходим для кластеризации ClickHouse","man":"Аналог `Zookeeper`, представленный от ClickHouse","sort":200,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":583,"svcOperationCfsParam":"resourceCPUKeeper","label":"Квота ядра пода Keeper","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"50","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8000,"minvalue":50,"descr":"Пример: `100`","man":"Указывается в Milicores
`1000` Mili == `1` Ядро","sort":210,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":584,"svcOperationCfsParam":"resourceMemoryKeeper","label":"Квота памяти пода Keeper","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"152","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":152,"descr":"Пример: `256`","man":"Указывается в Megabytes","sort":220,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":585,"svcOperationCfsParam":"resourceInstancesKeeper","label":"Кол-во реплик Keeper","dataType":"integer > 0","valueList":["1","3"],"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":3,"minvalue":1,"descr":"Пример: `1`","man":"Для **теста** - 1 нода.
Для **продуктива** - 3 ноды","sort":230,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":586,"svcOperationCfsParam":"ext_BACKUP_SCHEDULE","label":"Расписание резервного копирования","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"0 0 * * *","defaultCompute":null,"func":null,"regex":"^((((\\d+,)+\\d+|(\\d+(\\/|-|#)\\d+)|(\\d+L?)|(\\*(\\/\\d+)?)|(L(-\\d+)?)|(\\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\\d+(ns|us|µs|ms|s|m|h))+)$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Принимает формат `CRON`","man":null,"sort":500,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":587,"svcOperationCfsParam":"ext_BACKUP_NUM_TO_RETAIN","label":"Количество резервных копий","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"7","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":60,"minvalue":3,"descr":"Пример: `7`","man":"Кол-во **полных** резервных копий
Кол-во инкрементов - неограничено

Полная резервная копия выполняется раз в неделю
*Если изначально полной резервной копии нет* выполняется полный бекап
В остальные дни по крону выполняются **инкременты**","sort":510,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/120/182.json b/artifacts/api-meta/dev/operations/120/182.json new file mode 100644 index 0000000..faf0f6a --- /dev/null +++ b/artifacts/api-meta/dev/operations/120/182.json @@ -0,0 +1 @@ +{"queryDurationMs":91,"svcOperation":{"svcOperationId":182,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/ClickHouse/job/suspend/job/master/buildWithParameters","descr":null,"man":"Операция приводит к удалению всех подов
Persistent Volume остаются нетронутыми","cfsParams":[]},"runDurationMs":91} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/120/183.json b/artifacts/api-meta/dev/operations/120/183.json new file mode 100644 index 0000000..1b6c8fc --- /dev/null +++ b/artifacts/api-meta/dev/operations/120/183.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":183,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/ClickHouse/job/resume/job/master/buildWithParameters","descr":"Восстанавливает все поды и приводит кластер в работоспособный вид","man":null,"cfsParams":[]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/120/184.json b/artifacts/api-meta/dev/operations/120/184.json new file mode 100644 index 0000000..7a222e2 --- /dev/null +++ b/artifacts/api-meta/dev/operations/120/184.json @@ -0,0 +1 @@ +{"queryDurationMs":47,"svcOperation":{"svcOperationId":184,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/ClickHouse/job/delete/job/master/buildWithParameters","descr":null,"man":"Удаление возможно только после остановки сервиса через операцию `suspend`
После выполнения операции необходимо выждать определенное кол-во времени","cfsParams":[]},"runDurationMs":47} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/120/185.json b/artifacts/api-meta/dev/operations/120/185.json new file mode 100644 index 0000000..895d582 --- /dev/null +++ b/artifacts/api-meta/dev/operations/120/185.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":185,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/ClickHouse/job/create_user/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":596,"svcOperationCfsParam":"username","label":"Имя пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?![0-9_])[a-zA-Z_][a-zA-Z0-9_]{0,62}$","uniqueScope":null,"maxlength":62,"minlength":2,"maxvalue":null,"minvalue":null,"descr":"Пример: `myusername`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":598,"svcOperationCfsParam":"databaseName","label":"Список баз данных, к которым будет предоставлен доступ","dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[\"database\"]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходимо указать массив существующих баз","man":"Если базы не существует - при выполнении операции вернётся ошибка","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":599,"svcOperationCfsParam":"accessHosts","label":"Список хостов, с которых разрешено подключение к ClickHouse от лица пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"::/0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `::/0`","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/120/186.json b/artifacts/api-meta/dev/operations/120/186.json new file mode 100644 index 0000000..993ac2b --- /dev/null +++ b/artifacts/api-meta/dev/operations/120/186.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":186,"operation":"create_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/ClickHouse/job/create_database/job/master/buildWithParameters","descr":null,"man":"База данных создаётся на всех репликах кластера ClickHouse","cfsParams":[{"svcOperationCfsParamId":600,"svcOperationCfsParam":"databaseName","label":"Имя базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `db01`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/120/187.json b/artifacts/api-meta/dev/operations/120/187.json new file mode 100644 index 0000000..7b6213a --- /dev/null +++ b/artifacts/api-meta/dev/operations/120/187.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":187,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/ClickHouse/job/delete_user/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":601,"svcOperationCfsParam":"username","label":null,"dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя пользователя, созданное через операцию `create_user`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/120/188.json b/artifacts/api-meta/dev/operations/120/188.json new file mode 100644 index 0000000..4795871 --- /dev/null +++ b/artifacts/api-meta/dev/operations/120/188.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":188,"operation":"delete_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/ClickHouse/job/delete_database/job/master/buildWithParameters","descr":null,"man":"Необратимое действие!!!
Трижды подумай, заблокируй телефон тимлида и не выполняй это действие","cfsParams":[{"svcOperationCfsParamId":602,"svcOperationCfsParam":"databaseName","label":"Имя базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"ВСЕ ДАННЫЕ ВНУТРИ БД БУДУТ УДАЛЕНЫ","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/120/189.json b/artifacts/api-meta/dev/operations/120/189.json new file mode 100644 index 0000000..89bf9e0 --- /dev/null +++ b/artifacts/api-meta/dev/operations/120/189.json @@ -0,0 +1 @@ +{"queryDurationMs":60,"svcOperation":{"svcOperationId":189,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/ClickHouse/job/modify/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":603,"svcOperationCfsParam":"resourceInstances","label":"Кол-во реплик каждого шарда","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `3`","man":"**Для синхронизации данных между репликами** необходимо включить `Создать ClickHouse-Keeper`","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":604,"svcOperationCfsParam":"resourceInstancesShards","label":"Количество шардов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `1`","man":"**Шард** - это часть данных, разделенная на разные узлы (серверы) для горизонтального масштабирования и обработки больших объемов информации.
**Реплика** - это точная копия данных внутри одного шарда","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":605,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода кластера","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8000,"minvalue":1000,"descr":"Пример: `1000`","man":"Указывается в Milicores
`1000` Mili == `1` Ядро","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":606,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода кластера","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":1536,"descr":"Пример: `2048`","man":"Указывается в Megabytes","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":607,"svcOperationCfsParam":"appVersion","label":"Версия ClickHouse-server","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"25.10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия `clickhouse-server`","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":608,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Пример: `100`","man":"Указывается в Gigabytes
**Нельзя** выставлять меньше текущего значения","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":609,"svcOperationCfsParam":"needExternalAddressMaster","label":"Публикация белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Позволяет подключиться извне к ClickHouse","man":"Для выделения IP также необходимо указать имя Ip-space.
Его можно получить из свойств ресурсной платформы","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":610,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации белого ip master ноды","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `internet-no-antiddos-v1`","man":"Имя ipSpace для публикации внешнего адреса

Не может быть пустым, если включен `Выделение белого ip для master ноды`","sort":80,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":611,"svcOperationCfsParam":"needCreateKeeper","label":"Создать ClickHouse-Keeper","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходим для кластеризации ClickHouse","man":"Аналог `Zookeeper`, представленный от ClickHouse","sort":200,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":612,"svcOperationCfsParam":"resourceCPUKeeper","label":"Квота ядра пода Keeper","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8000,"minvalue":50,"descr":"Пример: `100`","man":"Указывается в Milicores
`1000` Mili == `1` Ядро","sort":210,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":613,"svcOperationCfsParam":"resourceMemoryKeeper","label":"Квота памяти пода Keeper","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":152,"descr":"Пример: `256`","man":"Указывается в Megabytes","sort":220,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":614,"svcOperationCfsParam":"resourceInstancesKeeper","label":"Кол-во реплик Keeper","dataType":"integer > 0","valueList":["1","3"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":3,"minvalue":1,"descr":"Пример: `1`","man":"Для **теста** - 1 нода.
Для **продуктива** - 3 ноды","sort":230,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":615,"svcOperationCfsParam":"ext_BACKUP_SCHEDULE","label":"Расписание резервного копирования","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"0 0 * * *","defaultCompute":null,"func":null,"regex":"^((((\\d+,)+\\d+|(\\d+(\\/|-|#)\\d+)|(\\d+L?)|(\\*(\\/\\d+)?)|(L(-\\d+)?)|(\\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\\d+(ns|us|µs|ms|s|m|h))+)$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Принимает формат `CRON`","man":null,"sort":500,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":616,"svcOperationCfsParam":"ext_BACKUP_NUM_TO_RETAIN","label":"Количество резервных копий","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":60,"minvalue":3,"descr":"Пример: `7`","man":"Кол-во **полных** резервных копий
Кол-во инкрементов - неограничено

Полная резервная копия выполняется раз в неделю
*Если изначально полной резервной копии нет* выполняется полный бекап
В остальные дни по крону выполняются **инкременты**","sort":510,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":61} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/13.list b/artifacts/api-meta/dev/operations/13.list new file mode 100644 index 0000000..33a30cc --- /dev/null +++ b/artifacts/api-meta/dev/operations/13.list @@ -0,0 +1,2 @@ +create 51 +delete 52 diff --git a/artifacts/api-meta/dev/operations/13/51.json b/artifacts/api-meta/dev/operations/13/51.json new file mode 100644 index 0000000..3814c5e --- /dev/null +++ b/artifacts/api-meta/dev/operations/13/51.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":51,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/s3/job/Bucket/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":124,"svcOperationCfsParam":"s3UserUid","label":"UID Корневой услуги S3","dataType":"uuid","valueList":null,"refSvcId":12,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UID Корневой услуги S3. На основе него будет создан бакет.","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":125,"svcOperationCfsParam":"bucketName","label":"Имя бакета s3","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя бакета s3","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":126,"svcOperationCfsParam":"maxSize","label":"Размер бакета","dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"-1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Максимальный размер бакета s3. Если поставить -1, будет безлимит. Размер указывается в Bytes","man":"Максимальный размер бакета s3. Если поставить 0, будет безлимит. Размер указывается в Bytes","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":127,"svcOperationCfsParam":"readAll","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Публичный доступ на чтение позволяет любому пользователю интернета скачивать объекты из бакета.","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":128,"svcOperationCfsParam":"listAll","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Публичный доступ к листингу позволяет любому пользователю интернета получить список объектов в бакете.","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":129,"svcOperationCfsParam":"corsAll","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Публичный доступ к чтению настроек позволяет любому пользователю интернета читать конфигурации CORS","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":130,"svcOperationCfsParam":"placement","label":"Класс хранилища","dataType":"string","valueList":["HOT","COLD"],"refSvcId":null,"isRequired":true,"defaultValue":"HOT","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Класс хранилища, который используется по умолчанию при загрузке объектов. Чем холоднее, тем дешевле место, но дороже обращения","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/13/52.json b/artifacts/api-meta/dev/operations/13/52.json new file mode 100644 index 0000000..8b35a57 --- /dev/null +++ b/artifacts/api-meta/dev/operations/13/52.json @@ -0,0 +1 @@ +{"queryDurationMs":66,"svcOperation":{"svcOperationId":52,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/s3/job/Bucket/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":66} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/149.list b/artifacts/api-meta/dev/operations/149.list new file mode 100644 index 0000000..dcde4a7 --- /dev/null +++ b/artifacts/api-meta/dev/operations/149.list @@ -0,0 +1,5 @@ +create 202 +delete 206 +modify 203 +suspend 204 +resume 205 diff --git a/artifacts/api-meta/dev/operations/149/202.json b/artifacts/api-meta/dev/operations/149/202.json new file mode 100644 index 0000000..c7494f0 --- /dev/null +++ b/artifacts/api-meta/dev/operations/149/202.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":202,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/valo/job/Tenant/job/create/job/master/buildWithParameters","descr":"При создании тенант предоставляется всегда в ТЕСТ (2 месяца с момента создания)
Для продления и переведения в ПРОД, воспользуйтесь в дальнейшем операцией modify","man":null,"cfsParams":[{"svcOperationCfsParamId":655,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":656,"svcOperationCfsParam":"domain","label":"DNS-Префикс","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^[a-z0-9](?:[a-z0-9-]{3,61}[a-z0-9])?$","uniqueScope":null,"maxlength":61,"minlength":3,"maxvalue":null,"minvalue":null,"descr":"Будет добавлено в зону valo.ngcloud.ru","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":658,"svcOperationCfsParam":"s3Storage","label":"Параметры хранилища","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Параметр указывается в `Gb`","man":"Данные хранятся в отдельном экземпляре S3","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":657,"svcOperationCfsParam":"valoOptions","label":"Настройки тенанта","dataType":"map-fixed","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"{}","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/149/203.json b/artifacts/api-meta/dev/operations/149/203.json new file mode 100644 index 0000000..7b47ca0 --- /dev/null +++ b/artifacts/api-meta/dev/operations/149/203.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":203,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/valo/job/Tenant/job/modify/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":659,"svcOperationCfsParam":"valoOptions","label":"Настройки тенанта","dataType":"map-fixed","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":660,"svcOperationCfsParam":"s3Storage","label":"Параметры хранилища","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Параметр указывается в `Gb`","man":"Данные хранятся в отдельном экземпляре S3","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/149/204.json b/artifacts/api-meta/dev/operations/149/204.json new file mode 100644 index 0000000..e264c1c --- /dev/null +++ b/artifacts/api-meta/dev/operations/149/204.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":204,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/valo/job/Tenant/job/suspend/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/149/205.json b/artifacts/api-meta/dev/operations/149/205.json new file mode 100644 index 0000000..ba1b930 --- /dev/null +++ b/artifacts/api-meta/dev/operations/149/205.json @@ -0,0 +1 @@ +{"queryDurationMs":72,"svcOperation":{"svcOperationId":205,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/valo/job/Tenant/job/resume/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":72} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/149/206.json b/artifacts/api-meta/dev/operations/149/206.json new file mode 100644 index 0000000..22c1f0e --- /dev/null +++ b/artifacts/api-meta/dev/operations/149/206.json @@ -0,0 +1 @@ +{"queryDurationMs":80,"svcOperation":{"svcOperationId":206,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/valo/job/Tenant/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":80} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/150.list b/artifacts/api-meta/dev/operations/150.list new file mode 100644 index 0000000..05f662b --- /dev/null +++ b/artifacts/api-meta/dev/operations/150.list @@ -0,0 +1,7 @@ +modify 110 +update_secrets 179 +reconcile 253 +suspend 173 +delete 109 +resume 174 +create 108 diff --git a/artifacts/api-meta/dev/operations/150/108.json b/artifacts/api-meta/dev/operations/150/108.json new file mode 100644 index 0000000..0f31ab3 --- /dev/null +++ b/artifacts/api-meta/dev/operations/150/108.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":108,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SthutrvalCluster/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":344,"svcOperationCfsParam":"nsxtUid","label":"UUID nsxt","dataType":"uuid","valueList":null,"refSvcId":22,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"InstanceUid nsxt. Nsxt должен быть создан","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":747,"svcOperationCfsParam":"vdcUid","label":"UUID vdc","dataType":"uuid","valueList":null,"refSvcId":21,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":345,"svcOperationCfsParam":"clusterName","label":"Имя кластера Kubernetes","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"example1","defaultCompute":null,"func":null,"regex":"(?=^.{1,63}$)^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","uniqueScope":"provider","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Наименование кластера Kubernetes. Имя будет использоваться в fqdn (svc.$CLUSTER_NAME)","man":null,"sort":25,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":346,"svcOperationCfsParam":"controlPlaneSizingPolicy","label":"Сайзинг Control Plane","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Настройка Control Plane. CPU (шт) / MEM (gb).
Наверное, должна подтягиваться из свойств ресурсной платформы","man":null,"sort":30,"dependsOnCfsParams":"vdcUid","isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":347,"svcOperationCfsParam":"controlPlaneSizingDisk","label":"Размер (Gb) для Control Plane","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"30","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":20,"descr":"Настройка Control Plane. Disk (Gb)","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":348,"svcOperationCfsParam":"controlPlaneCount","label":"Кол-во нод Control Plane","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":9,"minvalue":1,"descr":null,"man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":349,"svcOperationCfsParam":"workersSizingPolicy","label":"Сайзинг Workers","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Настройка workers. CPU (шт) / MEM (gb)","man":null,"sort":60,"dependsOnCfsParams":"vdcUid","isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":350,"svcOperationCfsParam":"workersSizingDisk","label":"Размер (Gb) для Workers","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"40","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":20,"descr":"Настройка workers. Disk (Gb)","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":351,"svcOperationCfsParam":"workersCount","label":"Кол-во нод Workers","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"2","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":99,"minvalue":1,"descr":"Настройка workers. Кол-во нод","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":352,"svcOperationCfsParam":"appVersion","label":"Версия Штурвал","dataType":"string","valueList":["2.12.1","2.11.0"],"refSvcId":null,"isRequired":true,"defaultValue":"2.12.1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия Штурвал (не является версией Kubernetes)","man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":353,"svcOperationCfsParam":"needExternalAddressAPI","label":"Включить vIP для Kubernetes API","dataType":"boolean","valueList":["true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP для доступа к kubernetes API. Пока нельзя выставить false","man":null,"sort":100,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":354,"svcOperationCfsParam":"accessIpListAPI","label":"Access-List для Kubernetes API","dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Access IP List для подключения к Kubernetes API. Указывается массив. Если передан пустой массив, доступ выделяется всем","man":null,"sort":110,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":355,"svcOperationCfsParam":"needExternalAddressIngress","label":"Включить vIP для Kubernetes Ingress","dataType":"boolean","valueList":["true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP для доступа к Ingress","man":null,"sort":120,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":356,"svcOperationCfsParam":"accessIpListIngress","label":"Access-List для Kubernetes Ingress","dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Access IP List для подключения к Ingress. Указывается массив. Если передан пустой массив, доступ выделяется всем","man":null,"sort":130,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/150/109.json b/artifacts/api-meta/dev/operations/150/109.json new file mode 100644 index 0000000..7127162 --- /dev/null +++ b/artifacts/api-meta/dev/operations/150/109.json @@ -0,0 +1 @@ +{"queryDurationMs":75,"svcOperation":{"svcOperationId":109,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SthutrvalCluster/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":75} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/150/110.json b/artifacts/api-meta/dev/operations/150/110.json new file mode 100644 index 0000000..5a34957 --- /dev/null +++ b/artifacts/api-meta/dev/operations/150/110.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":110,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SthutrvalCluster/job/modify/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":362,"svcOperationCfsParam":"controlPlaneCount","label":"Кол-во нод Control Plane","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":9,"minvalue":1,"descr":"Кол-во нод Control Plane","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":363,"svcOperationCfsParam":"workersCount","label":"Кол-во нод Workers","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":99,"minvalue":1,"descr":"Кол-во нод Workers","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":364,"svcOperationCfsParam":"accessIpListAPI","label":"Access-List для Kubernetes API","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Access IP List для подключения к Kubernetes API. Указывается массив. Если передан пустой массив, доступ выделяется всем","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":365,"svcOperationCfsParam":"accessIpListIngress","label":"Access-List для Kubernetes Ingress","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Access IP List для подключения к Ingress. Указывается массив. Если передан пустой массив, доступ выделяется всем","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":563,"svcOperationCfsParam":"appVersion","label":"Версия Штурвал","dataType":"string","valueList":["2.11.0","2.12.1"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия Штурвал (не является версией Kubernetes)
Понижать версию нельзя
Обновиться на несколько минорных нельзя
Невозможно перепрыгнуть не с последней минорной на мажорную
Можно обновиться на несколько патчей","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":637,"svcOperationCfsParam":"controlPlaneSizingDisk","label":"Размер (Gb) для Control Plane","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":638,"svcOperationCfsParam":"workersSizingDisk","label":"Размер (Gb) для Workers","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/150/173.json b/artifacts/api-meta/dev/operations/150/173.json new file mode 100644 index 0000000..94e5395 --- /dev/null +++ b/artifacts/api-meta/dev/operations/150/173.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":173,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SthutrvalCluster/job/suspend/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/150/174.json b/artifacts/api-meta/dev/operations/150/174.json new file mode 100644 index 0000000..bcceccf --- /dev/null +++ b/artifacts/api-meta/dev/operations/150/174.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":174,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SthutrvalCluster/job/resume/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/150/179.json b/artifacts/api-meta/dev/operations/150/179.json new file mode 100644 index 0000000..8a7ed34 --- /dev/null +++ b/artifacts/api-meta/dev/operations/150/179.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":179,"operation":"update_secrets","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SthutrvalCluster/job/update_secrets/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/150/253.json b/artifacts/api-meta/dev/operations/150/253.json new file mode 100644 index 0000000..21176eb --- /dev/null +++ b/artifacts/api-meta/dev/operations/150/253.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":253,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SthutrvalCluster/job/reconcile/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/151.list b/artifacts/api-meta/dev/operations/151.list new file mode 100644 index 0000000..6951f29 --- /dev/null +++ b/artifacts/api-meta/dev/operations/151.list @@ -0,0 +1,16 @@ +suspend 215 +resume 216 +create_policy 237 +delete_secrets 233 +restart 234 +create 210 +modify 211 +update_policy 238 +delete_policy 239 +recovery_secrets 232 +create_kv 212 +update_secrets 230 +delete_kv 213 +delete 231 +create_secrets 214 +reconcile 236 diff --git a/artifacts/api-meta/dev/operations/151/210.json b/artifacts/api-meta/dev/operations/151/210.json new file mode 100644 index 0000000..a92a7f6 --- /dev/null +++ b/artifacts/api-meta/dev/operations/151/210.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":210,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":663,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Кластер Kubernetes в котором будет развёрнуто приложение","man":"Выбрать платформу из списка

**Если список не отображается**
обратитесь к сервис менеджеру с вопросом предоставления ресурсной платформы","sort":0,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":669,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"bao-","defaultCompute":"append_pseudorandom","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":"provider","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":665,"svcOperationCfsParam":"resourceInstances","label":"Кол-во реплик","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"3","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `3`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":664,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8000,"minvalue":250,"descr":"Пример: `500`","man":"Указывается в Milicores
`1000` Mili == `1` Ядро","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":666,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":256,"descr":"Пример: `2048`","man":"Указывается в Megabytes","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":667,"svcOperationCfsParam":"resourceDisk","label":"Размер диска под хранение секретов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Пример: `10`","man":"Указывается в Gigabytes","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":668,"svcOperationCfsParam":"appVersion","label":"Версия OpenBao","dataType":"string","valueList":["2.4.4"],"refSvcId":null,"isRequired":true,"defaultValue":"2.4.4","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать из списка","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/151/211.json b/artifacts/api-meta/dev/operations/151/211.json new file mode 100644 index 0000000..3d968a3 --- /dev/null +++ b/artifacts/api-meta/dev/operations/151/211.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":211,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/modify/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":670,"svcOperationCfsParam":"resourceInstances","label":"Кол-во реплик","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `3`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":671,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8000,"minvalue":250,"descr":"Пример: `500`","man":"Указывается в Milicores
`1000` Mili == `1` Ядро","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":672,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":256,"descr":"Пример: `2048`","man":"Указывается в Megabytes","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":673,"svcOperationCfsParam":"resourceDisk","label":"Размер диска под хранение секретов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Пример: `10`","man":"Указывается в Gigabytes","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":674,"svcOperationCfsParam":"appVersion","label":"Версия OpenBao","dataType":"string","valueList":["2.4.4"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать из списка","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":58} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/151/212.json b/artifacts/api-meta/dev/operations/151/212.json new file mode 100644 index 0000000..3be93c6 --- /dev/null +++ b/artifacts/api-meta/dev/operations/151/212.json @@ -0,0 +1 @@ +{"queryDurationMs":59,"svcOperation":{"svcOperationId":212,"operation":"create_kv","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/create_kv/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":675,"svcOperationCfsParam":"kvName","label":"Имя Key/Value хранилища","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"kvname-","defaultCompute":"append_pseudorandom","func":null,"regex":"^[a-zA-Z0-9-]{1,24}$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Будет создан `v2 тип движка`

Уникальное в рамках услуги","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/151/213.json b/artifacts/api-meta/dev/operations/151/213.json new file mode 100644 index 0000000..fb7e453 --- /dev/null +++ b/artifacts/api-meta/dev/operations/151/213.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":213,"operation":"delete_kv","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/delete_kv/job/master/buildWithParameters","descr":null,"man":"**ОСТОРОЖНО**
Удаление KV подразумевает удаление ВСЕХ secrets внутри этой KV","cfsParams":[{"svcOperationCfsParamId":676,"svcOperationCfsParam":"kvName","label":"Имя Key/Value хранилища","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выберите из списка","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/151/214.json b/artifacts/api-meta/dev/operations/151/214.json new file mode 100644 index 0000000..5e43683 --- /dev/null +++ b/artifacts/api-meta/dev/operations/151/214.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":214,"operation":"create_secrets","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/create_secrets/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":677,"svcOperationCfsParam":"kvName","label":"Имя Key/Value хранилища","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выберите из списка","man":"Если список пустой, создайте kv через операцию `create_kv`","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":678,"svcOperationCfsParam":"secretPath","label":"Путь секрета в Vault","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"path/to/mysecret","defaultCompute":null,"func":null,"regex":"^[a-zA-Z0-9_-]+(?:\\/[a-zA-Z0-9_-]+)*$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `path` или `road/to/path`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":679,"svcOperationCfsParam":"secretData","label":"Секреты в Vault","dataType":"map","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Хотя бы один секрет необходимо добавить","man":"Данные не сохраняются в ЛК, в дальнейшем при обновлении секретов это необходимо учитывать","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/151/215.json b/artifacts/api-meta/dev/operations/151/215.json new file mode 100644 index 0000000..ea38fe1 --- /dev/null +++ b/artifacts/api-meta/dev/operations/151/215.json @@ -0,0 +1 @@ +{"queryDurationMs":90,"svcOperation":{"svcOperationId":215,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/suspend/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":91} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/151/216.json b/artifacts/api-meta/dev/operations/151/216.json new file mode 100644 index 0000000..0dbdb97 --- /dev/null +++ b/artifacts/api-meta/dev/operations/151/216.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":216,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/resume/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/151/230.json b/artifacts/api-meta/dev/operations/151/230.json new file mode 100644 index 0000000..39add93 --- /dev/null +++ b/artifacts/api-meta/dev/operations/151/230.json @@ -0,0 +1 @@ +{"queryDurationMs":65,"svcOperation":{"svcOperationId":230,"operation":"update_secrets","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/create_secrets/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":719,"svcOperationCfsParam":"kvName","label":"Имя Key/Value хранилища","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выберите из списка","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":720,"svcOperationCfsParam":"secretPath","label":"Путь секрета в Vault","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выберите из списка","man":"Предварительно необходимо выбрать параметр `Имя Key/Value хранилища`","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":721,"svcOperationCfsParam":"needFullUpdateSecret","label":"Переписать содержимое секрета?","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Если выбрать `true`, будет создана новая версия секрета `с нуля`
Если выбрать `false`, будет создана новая версия секрета с данными прошлой ревизии, а переданные данные в операции либо будут модифицированы, либо будут добавлены","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":722,"svcOperationCfsParam":"secretData","label":"Секреты в Vault","dataType":"map","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Хотя бы один секрет необходимо добавить","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":66} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/151/231.json b/artifacts/api-meta/dev/operations/151/231.json new file mode 100644 index 0000000..d3e9d10 --- /dev/null +++ b/artifacts/api-meta/dev/operations/151/231.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":231,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/151/232.json b/artifacts/api-meta/dev/operations/151/232.json new file mode 100644 index 0000000..0c9c0ee --- /dev/null +++ b/artifacts/api-meta/dev/operations/151/232.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":232,"operation":"recovery_secrets","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/recovery_secrets/job/master/buildWithParameters","descr":null,"man":"Данная операция подразумевает откат на конкретную версию в секрете.

**Это не восстановление удалённого секрета**","cfsParams":[{"svcOperationCfsParamId":723,"svcOperationCfsParam":"kvName","label":"Имя Key/Value хранилища","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выберите из списка","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":724,"svcOperationCfsParam":"secretPath","label":"Путь секрета в Vault","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выберите из списка","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":725,"svcOperationCfsParam":"secretVersion","label":"На какую версию секрета откатиться?","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/151/233.json b/artifacts/api-meta/dev/operations/151/233.json new file mode 100644 index 0000000..0236c17 --- /dev/null +++ b/artifacts/api-meta/dev/operations/151/233.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":233,"operation":"delete_secrets","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/delete_secrets/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":726,"svcOperationCfsParam":"kvName","label":"Имя Key/Value хранилища","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выберите из списка","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":727,"svcOperationCfsParam":"secretPath","label":"Путь секрета в Vault","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выберите из списка","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/151/234.json b/artifacts/api-meta/dev/operations/151/234.json new file mode 100644 index 0000000..7cb756c --- /dev/null +++ b/artifacts/api-meta/dev/operations/151/234.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":234,"operation":"restart","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/restart/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/151/236.json b/artifacts/api-meta/dev/operations/151/236.json new file mode 100644 index 0000000..d84032f --- /dev/null +++ b/artifacts/api-meta/dev/operations/151/236.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":236,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/reconcile/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/151/237.json b/artifacts/api-meta/dev/operations/151/237.json new file mode 100644 index 0000000..8cb8649 --- /dev/null +++ b/artifacts/api-meta/dev/operations/151/237.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":237,"operation":"create_policy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/create_policy/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":729,"svcOperationCfsParam":"policyName","label":"Человеко-читаемое имя политики","dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"policy-","defaultCompute":"append_pseudorandom","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Сделано для дальнейшего удобного использования","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":728,"svcOperationCfsParam":"policySettings","label":"Настройки политики","dataType":"array-map-fixed","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/151/238.json b/artifacts/api-meta/dev/operations/151/238.json new file mode 100644 index 0000000..1e9b4ff --- /dev/null +++ b/artifacts/api-meta/dev/operations/151/238.json @@ -0,0 +1 @@ +{"queryDurationMs":63,"svcOperation":{"svcOperationId":238,"operation":"update_policy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/update_policy/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":730,"svcOperationCfsParam":"policyName","label":"Существующее имя политики","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":731,"svcOperationCfsParam":"policySettings","label":"Настройки политики","dataType":"array-map-fixed","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Производится полная перезапись политики!","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":63} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/151/239.json b/artifacts/api-meta/dev/operations/151/239.json new file mode 100644 index 0000000..e314ba9 --- /dev/null +++ b/artifacts/api-meta/dev/operations/151/239.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":239,"operation":"delete_policy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/delete_policy/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":732,"svcOperationCfsParam":"policyName","label":"Существующее имя политики","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/152.list b/artifacts/api-meta/dev/operations/152.list new file mode 100644 index 0000000..3b0bd06 --- /dev/null +++ b/artifacts/api-meta/dev/operations/152.list @@ -0,0 +1,11 @@ +create_topic 217 +suspend 218 +modify_topic 219 +resume 220 +delete_topic 221 +create_user 222 +create 223 +modify 224 +delete 225 +modify_user 226 +delete_user 227 diff --git a/artifacts/api-meta/dev/operations/152/217.json b/artifacts/api-meta/dev/operations/152/217.json new file mode 100644 index 0000000..26cd9ce --- /dev/null +++ b/artifacts/api-meta/dev/operations/152/217.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":217,"operation":"create_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/create_topic/job/","descr":null,"man":"# Инструкция по управлению топиками Apache Kafka через платформу

## 1. Общая информация

---

Топик — это основная сущность в Apache Kafka, предназначенная для приёма сообщений от продюсеров и передачи их консюмерам.
Платформа позволяет создавать, удалять и изменять параметры топиков без прямого доступа к брокерам, обеспечивая удобное управление через интерфейс или API.

---

## Доступные операции

- **create_topic** — Создание топика
- **modify_topic** — Модификация топика
- **delete_topic** — Удаление топика

---

## 2. Параметры создания топика

Ниже перечислены параметры, которые необходимо указать при создании нового топика:

* **Имя топика**
Название топика.
Должно быть уникальным в пределах кластера.
Пример: `orders-events`.

* **Партиции**
Количество партиций топика.
Рекомендуется выбирать с учётом уровня параллелизма потребителей и предполагаемой нагрузки.
Пример: `6`. Здесь важно рассказать о том как происходит расчет оптимального количества
Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.

* **Реплики**
Количество реплик для каждой партиции.
Обычно равно количеству доступных брокеров или меньше.
Пример: `3`.


---

## 4. Параметры модификации топика

Для уже существующих топиков можно изменять параметры. Все параметры являются опциональными:

* **Имя топика**
Название топика.
Пример: `orders-events`.

* **Партиции**
Новое количество партиций.
Пример: `12`.

* **Реплики**
Новое количество реплик.
Пример: `2`.

---

## 5. Рекомендации

* Планируйте количество партиций с запасом — уменьшение их числа невозможно.
* Количество реплик должно соответствовать требуемому уровню отказоустойчивости, но не превышать количество брокеров.
* Изменение параметров топика в рабочем окружении может временно влиять на производительность. Рекомендуется проводить крупные изменения в периоды минимальной нагрузки.

---","cfsParams":[{"svcOperationCfsParamId":687,"svcOperationCfsParam":"nameTopic","label":"Название топика","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":689,"svcOperationCfsParam":"replicas","label":"Количество реплик для топика","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Количество реплик не может привышать количество реплик брокера","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":688,"svcOperationCfsParam":"partitions","label":"Количество партиций топика","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Число партиций можно увеличить, но уменьшить их нельзя.","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/152/218.json b/artifacts/api-meta/dev/operations/152/218.json new file mode 100644 index 0000000..fd3639e --- /dev/null +++ b/artifacts/api-meta/dev/operations/152/218.json @@ -0,0 +1 @@ +{"queryDurationMs":119,"svcOperation":{"svcOperationId":218,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/suspend/job/","descr":null,"man":null,"cfsParams":[]},"runDurationMs":120} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/152/219.json b/artifacts/api-meta/dev/operations/152/219.json new file mode 100644 index 0000000..1d6ca53 --- /dev/null +++ b/artifacts/api-meta/dev/operations/152/219.json @@ -0,0 +1 @@ +{"queryDurationMs":129,"svcOperation":{"svcOperationId":219,"operation":"modify_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/modify_topic/job/","descr":null,"man":"# Инструкция по управлению топиками Apache Kafka через платформу

## 1. Общая информация

---

Топик — это основная сущность в Apache Kafka, предназначенная для приёма сообщений от продюсеров и передачи их консюмерам.
Платформа позволяет создавать, удалять и изменять параметры топиков без прямого доступа к брокерам, обеспечивая удобное управление через интерфейс или API.

---

## Доступные операции

- **create_topic** — Создание топика
- **modify_topic** — Модификация топика
- **delete_topic** — Удаление топика

---

## 2. Параметры создания топика

Ниже перечислены параметры, которые необходимо указать при создании нового топика:

* **Имя топика**
Название топика.
Должно быть уникальным в пределах кластера.
Пример: `orders-events`.

* **Партиции**
Количество партиций топика.
Рекомендуется выбирать с учётом уровня параллелизма потребителей и предполагаемой нагрузки.
Пример: `6`. Здесь важно рассказать о том как происходит расчет оптимального количества
Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.

* **Реплики**
Количество реплик для каждой партиции.
Обычно равно количеству доступных брокеров или меньше.
Пример: `3`.


---

## 4. Параметры модификации топика

Для уже существующих топиков можно изменять параметры. Все параметры являются опциональными:

* **Имя топика**
Название топика.
Пример: `orders-events`.

* **Партиции**
Новое количество партиций.
Пример: `12`.

* **Реплики**
Новое количество реплик.
Пример: `2`.

---

## 5. Рекомендации

* Планируйте количество партиций с запасом — уменьшение их числа невозможно.
* Количество реплик должно соответствовать требуемому уровню отказоустойчивости, но не превышать количество брокеров.
* Изменение параметров топика в рабочем окружении может временно влиять на производительность. Рекомендуется проводить крупные изменения в периоды минимальной нагрузки.

---","cfsParams":[{"svcOperationCfsParamId":703,"svcOperationCfsParam":"nameTopic","label":"Название топика","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":705,"svcOperationCfsParam":"replicas","label":"Количество реплик для топика","dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Количество партиций ≤ (число брокеров). Пример `2`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":704,"svcOperationCfsParam":"partitions","label":"Количество партиций топика","dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Число партиций на кластер ≤ 100 × (число брокеров) × (фактор репликации). Пример `50`","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":129} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/152/220.json b/artifacts/api-meta/dev/operations/152/220.json new file mode 100644 index 0000000..f0e72df --- /dev/null +++ b/artifacts/api-meta/dev/operations/152/220.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":220,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/resume/job/","descr":null,"man":null,"cfsParams":[]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/152/221.json b/artifacts/api-meta/dev/operations/152/221.json new file mode 100644 index 0000000..4326c7d --- /dev/null +++ b/artifacts/api-meta/dev/operations/152/221.json @@ -0,0 +1 @@ +{"queryDurationMs":97,"svcOperation":{"svcOperationId":221,"operation":"delete_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/delete_topic/job/","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":695,"svcOperationCfsParam":"nameTopic","label":"Название топика","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходимо выбрать топик, который необходимо удалить","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":97} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/152/222.json b/artifacts/api-meta/dev/operations/152/222.json new file mode 100644 index 0000000..a1a106d --- /dev/null +++ b/artifacts/api-meta/dev/operations/152/222.json @@ -0,0 +1 @@ +{"queryDurationMs":64,"svcOperation":{"svcOperationId":222,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/create_user/job/","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.

---

## 1. Общая информация

Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.
Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.
Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.

---

## Доступные операции

- **create_user** — Создание пользователя
- **modify_user** — Модификация пользователя
- **delete_user** — Удаление пользователя

---

## 2. Параметры создания пользователя

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

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 3. Параметры модификации пользователя

Ниже перечислены параметры, которые необходимо указать при модификации пользователя:

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 4. Параметры удалении пользователя

Ниже перечислены параметры, которые необходимо указать при удалении пользователя:

* **Имя пользователя**
Имя удаляемого пользователя.
Пример: `username-admin`

## 5. Выходные параметры

После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:

* **ca.crt**
Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.
Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **ca.p12**
PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.p12
```

* **ca.password**
Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

* **user.crt**
Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.
Используется совместно с приватным ключом `user.key` для аутентификации.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **user.key**
Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.key
```

* **user.p12**
PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo "<содержание поля>" | base64 -d > <название>.p12
```

* **user.password**
Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

Эти параметры используются для настройки TLS-подключения.

---

## 6. Пример конфигурации клиента внутри кластера

Пример пода:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: kafka-4
spec:
volumes:
- name: work
emptyDir: {}
containers:
- name: kcat
image: quay.io/strimzi/kafka:latest-kafka-4.0.0
command: ["sleep", "5600"]
volumeMounts:
- name: work
mountPath: /work
restartPolicy: Never
```

Создаём под и сохраняем сертификаты:

```bash
kubectl cp user.p12 kafka-4:/work/
kubectl cp ca.p12 kafka-4:/work/
```

Создаём файлы конфигурации:

```bash
cat > /work/user-read.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

```bash
cat > /work/user-write.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user-write.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

Листинг доступных топиков:

```bash
/opt/kafka/bin/kafka-topics.sh \\
--bootstrap-server kafkak8s-bootstrap-external:9093 \\
--command-config /work/user-read.properties \\
--list
```

Запись сообщений:

```bash
/opt/kafka/bin/kafka-console-producer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--producer.config /work/user-write.properties
```

Чтение сообщений:

```bash
/opt/kafka/bin/kafka-console-consumer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--from-beginning \\
--group <group> \\
--consumer.config /work/user-read.properties \\
--max-messages 50
```

---

## 7. Пример внешнего подключения с использованием **kcat**

**Листинг топиков**

```bash
kcat -b <externalConnect.bootstrap.fqdn>:9093 \\
-L \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Запись сообщения**

```bash
echo "hello from kcat" | kcat -P \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-write.crt \\
-X ssl.key.location=./user-write.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Чтение сообщений**

```bash
kcat -C \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-o beginning \\
-q \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

---


## 9. Рекомендации

* Минимизируйте набор разрешённых операций для повышения безопасности.
* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.
* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.
* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.

---","cfsParams":[{"svcOperationCfsParamId":690,"svcOperationCfsParam":"username","label":"Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `username-admin`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":691,"svcOperationCfsParam":"nameTopic","label":"Название топика, к которому будут назначены права для создоваемого пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`. Использовать маску нельзя(`orders*`), только полное название или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":692,"svcOperationCfsParam":"operations","label":"Список операций, которые разрешены пользователю на топике","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `Create, Describe, Read, Write`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":693,"svcOperationCfsParam":"group","label":"Группа, которым разрешён доступ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `order-consumers` или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":694,"svcOperationCfsParam":"accessHosts","label":"Список хостов, с которых разрешено подключение к Kafka","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `192.168.1.0/24` или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":65} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/152/223.json b/artifacts/api-meta/dev/operations/152/223.json new file mode 100644 index 0000000..13db9d7 --- /dev/null +++ b/artifacts/api-meta/dev/operations/152/223.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svcOperation":{"svcOperationId":223,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/create/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":684,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать платформу из списка","man":null,"sort":5,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":680,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов в сети","dataType":"integer > 0","valueList":["1","2","3","4","5"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `2`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":681,"svcOperationCfsParam":"resourceMemory","label":"Квота(megabyte) памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `2048`","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":682,"svcOperationCfsParam":"resourceCPU","label":"Квота(millicore ) ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `2000`","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":683,"svcOperationCfsParam":"resourceDisk","label":"Размер(gigabyte) диска для базы данных","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `20`","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":685,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделяет внешний IP для доступа к master","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-брокеру. Пример: `true` или `false`","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":686,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации внешнего IP","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/152/224.json b/artifacts/api-meta/dev/operations/152/224.json new file mode 100644 index 0000000..ad6d6ad --- /dev/null +++ b/artifacts/api-meta/dev/operations/152/224.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":224,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/modify/job/","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":697,"svcOperationCfsParam":"resourceMemory","label":"Квота(megabyte) памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `2048`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":698,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов в сети","dataType":"integer > 0","valueList":["1","2","3","4","5"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `2`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":699,"svcOperationCfsParam":"resourceCPU","label":"Квота(millicore ) ядра пода","dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `2000`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":700,"svcOperationCfsParam":"resourceDisk","label":"Размер(gigabyte) диска для базы данных","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `20`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":701,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделяет внешний IP для доступа к master.","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-брокеру. Пример: `true` или `false`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":702,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации внешнего IP","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/152/225.json b/artifacts/api-meta/dev/operations/152/225.json new file mode 100644 index 0000000..e5b32b0 --- /dev/null +++ b/artifacts/api-meta/dev/operations/152/225.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":225,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/delete/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/152/226.json b/artifacts/api-meta/dev/operations/152/226.json new file mode 100644 index 0000000..428b621 --- /dev/null +++ b/artifacts/api-meta/dev/operations/152/226.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":226,"operation":"modify_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/modify_user/job/","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.

---

## 1. Общая информация

Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.
Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.
Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.

---

## Доступные операции

- **create_user** — Создание пользователя
- **modify_user** — Модификация пользователя
- **delete_user** — Удаление пользователя

---

## 2. Параметры создания пользователя

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

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 3. Параметры модификации пользователя

Ниже перечислены параметры, которые необходимо указать при модификации пользователя:

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 4. Параметры удалении пользователя

Ниже перечислены параметры, которые необходимо указать при удалении пользователя:

* **Имя пользователя**
Имя удаляемого пользователя.
Пример: `username-admin`

## 5. Выходные параметры

После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:

* **ca.crt**
Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.
Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **ca.p12**
PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.p12
```

* **ca.password**
Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

* **user.crt**
Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.
Используется совместно с приватным ключом `user.key` для аутентификации.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **user.key**
Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.key
```

* **user.p12**
PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo "<содержание поля>" | base64 -d > <название>.p12
```

* **user.password**
Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

Эти параметры используются для настройки TLS-подключения.

---

## 6. Пример конфигурации клиента внутри кластера

Пример пода:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: kafka-4
spec:
volumes:
- name: work
emptyDir: {}
containers:
- name: kcat
image: quay.io/strimzi/kafka:latest-kafka-4.0.0
command: ["sleep", "5600"]
volumeMounts:
- name: work
mountPath: /work
restartPolicy: Never
```

Создаём под и сохраняем сертификаты:

```bash
kubectl cp user.p12 kafka-4:/work/
kubectl cp ca.p12 kafka-4:/work/
```

Создаём файлы конфигурации:

```bash
cat > /work/user-read.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

```bash
cat > /work/user-write.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user-write.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

Листинг доступных топиков:

```bash
/opt/kafka/bin/kafka-topics.sh \\
--bootstrap-server kafkak8s-bootstrap-external:9093 \\
--command-config /work/user-read.properties \\
--list
```

Запись сообщений:

```bash
/opt/kafka/bin/kafka-console-producer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--producer.config /work/user-write.properties
```

Чтение сообщений:

```bash
/opt/kafka/bin/kafka-console-consumer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--from-beginning \\
--group <group> \\
--consumer.config /work/user-read.properties \\
--max-messages 50
```

---

## 7. Пример внешнего подключения с использованием **kcat**

**Листинг топиков**

```bash
kcat -b <externalConnect.bootstrap.fqdn>:9093 \\
-L \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Запись сообщения**

```bash
echo "hello from kcat" | kcat -P \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-write.crt \\
-X ssl.key.location=./user-write.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Чтение сообщений**

```bash
kcat -C \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-o beginning \\
-q \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

---


## 9. Рекомендации

* Минимизируйте набор разрешённых операций для повышения безопасности.
* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.
* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.
* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.

---","cfsParams":[{"svcOperationCfsParamId":710,"svcOperationCfsParam":"username","label":"Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `username-admin`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":706,"svcOperationCfsParam":"nameTopic","label":"Название топика (topic), к которому будут назначены права для указанного пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`. Использовать маску нельзя(`orders*`), только полное название или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":707,"svcOperationCfsParam":"operations","label":"Список операций, которые разрешены пользователю на топике","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `Create, Describe, Read, Write`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":708,"svcOperationCfsParam":"group","label":"Группа, которым разрешён доступ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `order-consumers` или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":709,"svcOperationCfsParam":"accessHosts","label":"Список хостов, с которых разрешено подключение к Kafka","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `192.168.1.0/24` или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/152/227.json b/artifacts/api-meta/dev/operations/152/227.json new file mode 100644 index 0000000..b8d9106 --- /dev/null +++ b/artifacts/api-meta/dev/operations/152/227.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":227,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/delete_user/job/","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.

---

## 1. Общая информация

Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.
Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.
Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.

---

## Доступные операции

- **create_user** — Создание пользователя
- **modify_user** — Модификация пользователя
- **delete_user** — Удаление пользователя

---

## 2. Параметры создания пользователя

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

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 3. Параметры модификации пользователя

Ниже перечислены параметры, которые необходимо указать при модификации пользователя:

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 4. Параметры удалении пользователя

Ниже перечислены параметры, которые необходимо указать при удалении пользователя:

* **Имя пользователя**
Имя удаляемого пользователя.
Пример: `username-admin`

## 5. Выходные параметры

После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:

* **ca.crt**
Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.
Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **ca.p12**
PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.p12
```

* **ca.password**
Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

* **user.crt**
Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.
Используется совместно с приватным ключом `user.key` для аутентификации.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **user.key**
Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.key
```

* **user.p12**
PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo "<содержание поля>" | base64 -d > <название>.p12
```

* **user.password**
Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

Эти параметры используются для настройки TLS-подключения.

---

## 6. Пример конфигурации клиента внутри кластера

Пример пода:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: kafka-4
spec:
volumes:
- name: work
emptyDir: {}
containers:
- name: kcat
image: quay.io/strimzi/kafka:latest-kafka-4.0.0
command: ["sleep", "5600"]
volumeMounts:
- name: work
mountPath: /work
restartPolicy: Never
```

Создаём под и сохраняем сертификаты:

```bash
kubectl cp user.p12 kafka-4:/work/
kubectl cp ca.p12 kafka-4:/work/
```

Создаём файлы конфигурации:

```bash
cat > /work/user-read.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

```bash
cat > /work/user-write.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user-write.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

Листинг доступных топиков:

```bash
/opt/kafka/bin/kafka-topics.sh \\
--bootstrap-server kafkak8s-bootstrap-external:9093 \\
--command-config /work/user-read.properties \\
--list
```

Запись сообщений:

```bash
/opt/kafka/bin/kafka-console-producer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--producer.config /work/user-write.properties
```

Чтение сообщений:

```bash
/opt/kafka/bin/kafka-console-consumer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--from-beginning \\
--group <group> \\
--consumer.config /work/user-read.properties \\
--max-messages 50
```

---

## 7. Пример внешнего подключения с использованием **kcat**

**Листинг топиков**

```bash
kcat -b <externalConnect.bootstrap.fqdn>:9093 \\
-L \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Запись сообщения**

```bash
echo "hello from kcat" | kcat -P \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-write.crt \\
-X ssl.key.location=./user-write.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Чтение сообщений**

```bash
kcat -C \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-o beginning \\
-q \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

---


## 9. Рекомендации

* Минимизируйте набор разрешённых операций для повышения безопасности.
* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.
* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.
* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.

---","cfsParams":[{"svcOperationCfsParamId":696,"svcOperationCfsParam":"username","label":"Имя удаляемого пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `username-admin`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/153.list b/artifacts/api-meta/dev/operations/153.list new file mode 100644 index 0000000..68d69cb --- /dev/null +++ b/artifacts/api-meta/dev/operations/153.list @@ -0,0 +1,2 @@ +delete 235 +create 229 diff --git a/artifacts/api-meta/dev/operations/153/229.json b/artifacts/api-meta/dev/operations/153/229.json new file mode 100644 index 0000000..cb0e966 --- /dev/null +++ b/artifacts/api-meta/dev/operations/153/229.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":229,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nifi/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":717,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Кластер Kubernetes в котором будет развёрнуто приложение","man":"Выбрать платформу из списка

**Если список не отображается**
обратитесь к сервис менеджеру с вопросом предоставления ресурсной платформы","sort":0,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":711,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"nifi-","defaultCompute":"append_pseudorandom","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":"provider","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":714,"svcOperationCfsParam":"resourceInstances","label":"Кол-во реплик","dataType":"integer > 0","valueList":["1"],"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":1,"minvalue":1,"descr":"Пример: `1`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":712,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"2000","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8000,"minvalue":2000,"descr":"Пример: `2000`","man":"Указывается в Milicores
`1000` Mili == `1` Ядро","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":713,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"4096","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":16384,"minvalue":2048,"descr":"Пример: `2048`","man":"Указывается в Megabytes","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":715,"svcOperationCfsParam":"resourceDisk","label":"Размер диска под хранение flow","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Пример: `10`","man":"Указывается в Gigabytes","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":716,"svcOperationCfsParam":"appVersion","label":"Версия Nifi","dataType":"string","valueList":["2.6.0"],"refSvcId":null,"isRequired":true,"defaultValue":"2.6.0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать из списка","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":718,"svcOperationCfsParam":"jdbcDrivers","label":"URL подключаемых драйверов","dataType":"array-map-fixed","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Пример: `https://jdbc.postgresql.org/download/postgresql-42.7.8.jar`","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/153/235.json b/artifacts/api-meta/dev/operations/153/235.json new file mode 100644 index 0000000..48cdf3b --- /dev/null +++ b/artifacts/api-meta/dev/operations/153/235.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":235,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nifi/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/19.list b/artifacts/api-meta/dev/operations/19.list new file mode 100644 index 0000000..e3467d3 --- /dev/null +++ b/artifacts/api-meta/dev/operations/19.list @@ -0,0 +1,6 @@ +suspend 143 +resume 144 +create 136 +delete 137 +reconcile 249 +modify 207 diff --git a/artifacts/api-meta/dev/operations/19/136.json b/artifacts/api-meta/dev/operations/19/136.json new file mode 100644 index 0000000..4f68658 --- /dev/null +++ b/artifacts/api-meta/dev/operations/19/136.json @@ -0,0 +1 @@ +{"queryDurationMs":60,"svcOperation":{"svcOperationId":136,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Org/job/create/job/master/buildWithParameters","descr":null,"man":"`IaaS` - Доступ в Keycloak предоставляется пользователю, который создаёт услугу
`SaaS` - Без доступа к Keycloak","cfsParams":[{"svcOperationCfsParamId":418,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Облако в котором будет развёрнут тенант","man":"Выбрать платформу из списка

**Если список не отображается**
обратитесь к сервис менеджеру с вопросом предоставления ресурсной платформы","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":556,"svcOperationCfsParam":"organizationType","label":"Тип организации","dataType":"string","valueList":["iaas","saas"],"refSvcId":null,"isRequired":true,"defaultValue":"iaas","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Доступ к организации предоставляется только при выборе `iaas`","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":60} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/19/137.json b/artifacts/api-meta/dev/operations/19/137.json new file mode 100644 index 0000000..db57c90 --- /dev/null +++ b/artifacts/api-meta/dev/operations/19/137.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":137,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Org/job/delete/job/master/buildWithParameters","descr":null,"man":"Удалить возможно только через 14 дней после выполнения операции `suspend`
**ОСТОРЖНО: Удаление приводит к полному удалению всех сущностей внутри этого тенанта**

Если существуют инстансы VDC, Edge, vApp, Vm или Kubernetes-кластер Штурвал, которые были созданы, из ЛК удалены не будут. Необходимо обратиться к `технической поддержке` для удаления инстансов","cfsParams":[]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/19/143.json b/artifacts/api-meta/dev/operations/19/143.json new file mode 100644 index 0000000..c6f97ad --- /dev/null +++ b/artifacts/api-meta/dev/operations/19/143.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":143,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Org/job/suspend/job/master/buildWithParameters","descr":null,"man":"Операция **не останавливает ВМки** в облаке, но не даёт редактировать все сущности внутри тенанта","cfsParams":[]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/19/144.json b/artifacts/api-meta/dev/operations/19/144.json new file mode 100644 index 0000000..ba1b752 --- /dev/null +++ b/artifacts/api-meta/dev/operations/19/144.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":144,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Org/job/resume/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/19/207.json b/artifacts/api-meta/dev/operations/19/207.json new file mode 100644 index 0000000..db40bcf --- /dev/null +++ b/artifacts/api-meta/dev/operations/19/207.json @@ -0,0 +1 @@ +{"queryDurationMs":114,"svcOperation":{"svcOperationId":207,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Org/job/modify/job/master/buildWithParameters","descr":null,"man":"Для возможности изменения параметров предварительно необходимо создать **Виртуальный датацентр (VDC)**, потом **Сетевой шлюз периметра (Edge Gateway)**
Также при удалении ipSpaces убедитесь, что все внешние IP удалены. В случае если хоть одна привязка vIP есть, данный ipSpace удалён **не будет**","cfsParams":[{"svcOperationCfsParamId":662,"svcOperationCfsParam":"vIPConfigure","label":"Настройка внешних IP","dataType":"array-map-fixed","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":114} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/19/249.json b/artifacts/api-meta/dev/operations/19/249.json new file mode 100644 index 0000000..62d0375 --- /dev/null +++ b/artifacts/api-meta/dev/operations/19/249.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":249,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Org/job/reconcile/job/master/buildWithParameters","descr":"Необходимо для актуализации состояния организации.
Операция приводит инстанс услуги к текущей целевой модели, принятой в Личном Кабинете: обновляет информацию из Cloud Director, производит миграцию состояния услуги до последней версии схемы","man":null,"cfsParams":[]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/2.list b/artifacts/api-meta/dev/operations/2.list new file mode 100644 index 0000000..c490688 --- /dev/null +++ b/artifacts/api-meta/dev/operations/2.list @@ -0,0 +1,5 @@ +delete 75 +create 74 +suspend 97 +modify 76 +resume 98 diff --git a/artifacts/api-meta/dev/operations/2/74.json b/artifacts/api-meta/dev/operations/2/74.json new file mode 100644 index 0000000..045e00a --- /dev/null +++ b/artifacts/api-meta/dev/operations/2/74.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svcOperation":{"svcOperationId":74,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Template/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":202,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"100","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":203,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"200","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":204,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":205,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":206,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":207,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/2/75.json b/artifacts/api-meta/dev/operations/2/75.json new file mode 100644 index 0000000..bc6b72e --- /dev/null +++ b/artifacts/api-meta/dev/operations/2/75.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":75,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Template/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/2/76.json b/artifacts/api-meta/dev/operations/2/76.json new file mode 100644 index 0000000..4be788b --- /dev/null +++ b/artifacts/api-meta/dev/operations/2/76.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":76,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Template/job/modify/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":208,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":209,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":210,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":211,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/2/97.json b/artifacts/api-meta/dev/operations/2/97.json new file mode 100644 index 0000000..a645d94 --- /dev/null +++ b/artifacts/api-meta/dev/operations/2/97.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svcOperation":{"svcOperationId":97,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Template/job/suspend/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/2/98.json b/artifacts/api-meta/dev/operations/2/98.json new file mode 100644 index 0000000..2b879af --- /dev/null +++ b/artifacts/api-meta/dev/operations/2/98.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":98,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Template/job/resume/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/20.list b/artifacts/api-meta/dev/operations/20.list new file mode 100644 index 0000000..1b75ce6 --- /dev/null +++ b/artifacts/api-meta/dev/operations/20.list @@ -0,0 +1,4 @@ +suspend 118 +resume 119 +delete 23 +create 8 diff --git a/artifacts/api-meta/dev/operations/20/118.json b/artifacts/api-meta/dev/operations/20/118.json new file mode 100644 index 0000000..3b46e66 --- /dev/null +++ b/artifacts/api-meta/dev/operations/20/118.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":118,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/OrgSaas/job/suspend/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/20/119.json b/artifacts/api-meta/dev/operations/20/119.json new file mode 100644 index 0000000..34f2e28 --- /dev/null +++ b/artifacts/api-meta/dev/operations/20/119.json @@ -0,0 +1 @@ +{"queryDurationMs":71,"svcOperation":{"svcOperationId":119,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/OrgSaas/job/resume/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":71} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/20/23.json b/artifacts/api-meta/dev/operations/20/23.json new file mode 100644 index 0000000..d26d0fe --- /dev/null +++ b/artifacts/api-meta/dev/operations/20/23.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svcOperation":{"svcOperationId":23,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/OrgSaas/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/20/8.json b/artifacts/api-meta/dev/operations/20/8.json new file mode 100644 index 0000000..ddceb6f --- /dev/null +++ b/artifacts/api-meta/dev/operations/20/8.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":8,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/OrgSaas/job/create/job/master/buildWithParameters","descr":"Создание организации в Cloud Director
Id в клауд директоре создаётся на основе contragentCode","man":"Создание организации в Cloud Director
Id в клауд директоре создаётся на основе contragentCode","cfsParams":[{"svcOperationCfsParamId":185,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование ресурсной платформы","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/21.list b/artifacts/api-meta/dev/operations/21.list new file mode 100644 index 0000000..b926a52 --- /dev/null +++ b/artifacts/api-meta/dev/operations/21.list @@ -0,0 +1,6 @@ +modify 112 +create 9 +delete 24 +reconcile 250 +suspend 171 +resume 172 diff --git a/artifacts/api-meta/dev/operations/21/112.json b/artifacts/api-meta/dev/operations/21/112.json new file mode 100644 index 0000000..046bf67 --- /dev/null +++ b/artifacts/api-meta/dev/operations/21/112.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":112,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vdc/job/modify/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":560,"svcOperationCfsParam":"cpuAllocated","label":"Сколько аллоцировать на VDC ЯДЕР","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"шт","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":561,"svcOperationCfsParam":"memAllocated","label":"Сколько аллоцировать на VDC ОЗУ","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":1024,"minvalue":1,"descr":"gb","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":562,"svcOperationCfsParam":"storageConfig","label":"Конфигурация Storage","dataType":"array-map-fixed","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Первая политика в списке указывается как "По умолчанию"","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/21/171.json b/artifacts/api-meta/dev/operations/21/171.json new file mode 100644 index 0000000..0a11321 --- /dev/null +++ b/artifacts/api-meta/dev/operations/21/171.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":171,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vdc/job/suspend/job/master/buildWithParameters","descr":null,"man":"Операция **не останавливает ВМки** в облаке, но не даёт редактировать все сущности внутри VDC","cfsParams":[]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/21/172.json b/artifacts/api-meta/dev/operations/21/172.json new file mode 100644 index 0000000..8cd0c8f --- /dev/null +++ b/artifacts/api-meta/dev/operations/21/172.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":172,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vdc/job/resume/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/21/24.json b/artifacts/api-meta/dev/operations/21/24.json new file mode 100644 index 0000000..0ae21cf --- /dev/null +++ b/artifacts/api-meta/dev/operations/21/24.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":24,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vdc/job/delete/job/master/buildWithParameters","descr":null,"man":"Удалить возможно только через 14 дней после выполнения операции `suspend`
**ОСТОРЖНО: Удаление приводит к полному удалению всех сущностей внутри этого VDC**

Если существуют инстансы Edge, vApp, Vm или Kubernetes-кластер Штурвал, которые были созданы, из ЛК удалены не будут. Необходимо обратиться к `технической поддержке` для удаления инстансов","cfsParams":[]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/21/250.json b/artifacts/api-meta/dev/operations/21/250.json new file mode 100644 index 0000000..477e777 --- /dev/null +++ b/artifacts/api-meta/dev/operations/21/250.json @@ -0,0 +1 @@ +{"queryDurationMs":61,"svcOperation":{"svcOperationId":250,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vdc/job/reconcile/job/master/buildWithParameters","descr":"Необходимо для актуализации состояния виртуального ДЦ.
Операция приводит инстанс услуги к текущей целевой модели, принятой в Личном Кабинете: обновляет информацию из Cloud Director, производит миграцию состояния услуги до последней версии схемы","man":null,"cfsParams":[]},"runDurationMs":61} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/21/9.json b/artifacts/api-meta/dev/operations/21/9.json new file mode 100644 index 0000000..f201f54 --- /dev/null +++ b/artifacts/api-meta/dev/operations/21/9.json @@ -0,0 +1 @@ +{"queryDurationMs":61,"svcOperation":{"svcOperationId":9,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vdc/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":30,"svcOperationCfsParam":"organizationUid","label":"UUID Организации","dataType":"uuid","valueList":null,"refSvcId":19,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Для создания VDC предварительно необходимо создать организацию через услугу `Организация в Cloud Director`","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":746,"svcOperationCfsParam":"networkProvider","label":"Зона доступности","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":"organizationUid","isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":335,"svcOperationCfsParam":"providerVdc","label":"Кластер ресурсов","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Приписка `2.8` - Скорость vCPU - 2800MHz
И так далее...
","sort":30,"dependsOnCfsParams":"organizationUid,networkProvider","isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":397,"svcOperationCfsParam":"cpuGuaranteed","label":"Гарантированная доля ЯДЕР","dataType":"integer > 0","valueList":["20","50","80"],"refSvcId":null,"isRequired":true,"defaultValue":"20","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"% резервирования","man":"Свойство нельзя изменить после создания","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":398,"svcOperationCfsParam":"memGuaranteed","label":"Гарантированная доля ОЗУ","dataType":"integer > 0","valueList":["20","50","80"],"refSvcId":null,"isRequired":true,"defaultValue":"20","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"% резервирования","man":"После создания нельзя изменить","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":557,"svcOperationCfsParam":"cpuAllocated","label":"Сколько аллоцировать на VDC ЯДЕР","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":200,"minvalue":1,"descr":"шт","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":558,"svcOperationCfsParam":"memAllocated","label":"Сколько аллоцировать на VDC ОЗУ","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"20","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4096,"minvalue":1,"descr":"gb","man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":361,"svcOperationCfsParam":"storageConfig","label":"Конфигурация Storage","dataType":"array-map-fixed","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Первая политика в списке указывается как "По умолчанию"","sort":100,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":61} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/22.list b/artifacts/api-meta/dev/operations/22.list new file mode 100644 index 0000000..36fa3b1 --- /dev/null +++ b/artifacts/api-meta/dev/operations/22.list @@ -0,0 +1,4 @@ +modify 111 +delete 25 +reconcile 252 +create 10 diff --git a/artifacts/api-meta/dev/operations/22/10.json b/artifacts/api-meta/dev/operations/22/10.json new file mode 100644 index 0000000..1b9e6f5 --- /dev/null +++ b/artifacts/api-meta/dev/operations/22/10.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":10,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Nsxt/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":621,"svcOperationCfsParam":"vdcType","label":"Тип подключаемой VDC","dataType":"string","valueList":["vdc","vdcGroup"],"refSvcId":null,"isRequired":true,"defaultValue":"vdc","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Тип родительской услуги","man":"При выборе vdc обеспечивает сетевую доступность только в рамках этого vdc
При выборе groupvdc обеспечивает сетевую доступность между всеми vdc, которые включены в groupvdc","sort":0,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":8,"svcOperationCfsParam":"vdcUid","label":"UUID Услуги VDC","dataType":"string","valueList":null,"refSvcId":21,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID Услуги `Виртуальный датацентр (vDC)`","man":"Необходимо, если выбран тип подключаемой VDC: `vdc`","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":622,"svcOperationCfsParam":"vdcGroupUid","label":"UUID Услуги Группы VDC","dataType":"string","valueList":null,"refSvcId":29,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID Услуги `Группа виртуальных датацентров (groupvDC)`","man":"Необходимо, если выбран тип подключаемой VDC: `groupvdc`","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":340,"svcOperationCfsParam":"needEnableAVI","label":"Включить ALB","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включение Load Balancer","man":"Параметры `Наименование segroup`, `Кол-во VS на AVI` необходимо также указать","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":341,"svcOperationCfsParam":"virtualServicesCount","label":"Кол-во VS на AVI","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4,"minvalue":1,"descr":"Кол-во виртуальных сервисов, которые **резервируются** на AVI","man":"Во избежании коллапса пока выделяется до 4
Необходимо указывать, если включён параметр `Включить ALB`","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/22/111.json b/artifacts/api-meta/dev/operations/22/111.json new file mode 100644 index 0000000..95030f9 --- /dev/null +++ b/artifacts/api-meta/dev/operations/22/111.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":111,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Nsxt/job/modify/job/master/buildWithParameters","descr":null,"man":"Для создания SNAT Правила убедитесь, что в организации есть свободные IP
Редактировать кол-во свободных IP можно в услуге `Организация в Cloud Director` -> `modify`","cfsParams":[{"svcOperationCfsParamId":368,"svcOperationCfsParam":"needEnableAVI","label":"Включить ALB","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включение Load Balancer","man":"Параметры `Наименование segroup`, `Кол-во VS на AVI` необходимо также указать","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":369,"svcOperationCfsParam":"virtualServicesCount","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4,"minvalue":1,"descr":"Кол-во виртуальных сервисов, которые выделяются на AVI","man":"Во избежании коллапса пока выделяется до 4
Необходимо указывать, если включён параметр `Включить ALB`","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":371,"svcOperationCfsParam":"needExternalAddressSNAT","label":"Выделить VIP для SNAT","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Создать правило SNAT на подсеть `10.10.102.0/24`","man":"Параметр `ip Space для VIP` станет обязательным, если указан `true`","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":372,"svcOperationCfsParam":"ipSpaceName","label":"ip Space для VIP","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ip Space для внешнего IP

getKeyListFromStruct(getInstanceState(getValueFromStruct(getInstanceState(getValueFromStruct(getInstanceState(), "params.vdcUid")), "params.organizationUid")), "params.vIPConfigure")","man":"Необходимо указывать, если включён параметр `Выделить VIP для SNAT`","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/22/25.json b/artifacts/api-meta/dev/operations/22/25.json new file mode 100644 index 0000000..5c3472c --- /dev/null +++ b/artifacts/api-meta/dev/operations/22/25.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":25,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Nsxt/job/delete/job/master/buildWithParameters","descr":null,"man":"Невозможно удалить если routed-сеть в Edge связана с:
- vApp
- VM
- Kubernetes-кластер Штурвал

Запустить операцию возможно, но будет ошибка","cfsParams":[]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/22/252.json b/artifacts/api-meta/dev/operations/22/252.json new file mode 100644 index 0000000..8ba3598 --- /dev/null +++ b/artifacts/api-meta/dev/operations/22/252.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":252,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Nsxt/job/reconcile/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/23.list b/artifacts/api-meta/dev/operations/23.list new file mode 100644 index 0000000..a9384e4 --- /dev/null +++ b/artifacts/api-meta/dev/operations/23.list @@ -0,0 +1,5 @@ +create 26 +delete 29 +suspend 27 +resume 28 +modify 68 diff --git a/artifacts/api-meta/dev/operations/23/26.json b/artifacts/api-meta/dev/operations/23/26.json new file mode 100644 index 0000000..b2ef869 --- /dev/null +++ b/artifacts/api-meta/dev/operations/23/26.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":26,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vm/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":33,"svcOperationCfsParam":"vappUid","label":"InstanceUid vApp","dataType":"uuid","valueList":null,"refSvcId":26,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"InstanceUid vApp. vApp должен быть создан","man":"InstanceUid vApp. vApp должен быть создан","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":35,"svcOperationCfsParam":"vmName","label":"Имя ВМ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"vm0001","defaultCompute":null,"func":null,"regex":"^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ВМ. Не поддерживает спец-символы","man":"Имя ВМ. Не поддерживает спец-символы","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":36,"svcOperationCfsParam":"vmCpu","label":"CPU","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"2","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"CPU","man":"CPU","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":37,"svcOperationCfsParam":"vmRam","label":"RAM","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"2","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"RAM (GB)","man":"RAM (GB)","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":38,"svcOperationCfsParam":"vmDisksize","label":"Диск VM","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Размер диска под сервис (GB)","man":"Размер диска под сервис (GB)","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":176,"svcOperationCfsParam":"templateName","label":null,"dataType":"string","valueList":["RockyLinux_9-16G","OracleLinux_9-16G","Ubuntu_24-20G","Ubuntu_22-20G"],"refSvcId":null,"isRequired":true,"defaultValue":"RockyLinux_9-16G","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"ОС","man":"ОС","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":177,"svcOperationCfsParam":"accessIpList","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"79.111.119.78/32 185.247.187.1/32","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Вставить содержимое из 'curl ifconfig.io'
IP адреса в CIDR формате через пробел для настройки аксес листов","man":"IP адреса в CIDR формате через пробел для настройки аксес листов","sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":406,"svcOperationCfsParam":"ipSpaceName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Брать из свойств ресурсной платформы
.vcd.ipSpace

Имя IP-space для выделения внешнего IP (IP выделяется обязательно)","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/23/27.json b/artifacts/api-meta/dev/operations/23/27.json new file mode 100644 index 0000000..bbc17be --- /dev/null +++ b/artifacts/api-meta/dev/operations/23/27.json @@ -0,0 +1 @@ +{"queryDurationMs":109,"svcOperation":{"svcOperationId":27,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vm/job/suspend/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":110} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/23/28.json b/artifacts/api-meta/dev/operations/23/28.json new file mode 100644 index 0000000..9109b62 --- /dev/null +++ b/artifacts/api-meta/dev/operations/23/28.json @@ -0,0 +1 @@ +{"queryDurationMs":65,"svcOperation":{"svcOperationId":28,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vm/job/resume/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":65} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/23/29.json b/artifacts/api-meta/dev/operations/23/29.json new file mode 100644 index 0000000..a107312 --- /dev/null +++ b/artifacts/api-meta/dev/operations/23/29.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":29,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vm/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/23/68.json b/artifacts/api-meta/dev/operations/23/68.json new file mode 100644 index 0000000..0c07a6d --- /dev/null +++ b/artifacts/api-meta/dev/operations/23/68.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":68,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vm/job/modify/job/master/buildWithParameters","descr":"Операция автоматически останавливает ВМ.","man":"Операция автоматически останавливает ВМ.","cfsParams":[{"svcOperationCfsParamId":186,"svcOperationCfsParam":"vmCpu","label":"CPU","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"CPU","man":"CPU","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":187,"svcOperationCfsParam":"vmRam","label":"RAM","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"RAM","man":"RAM","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":188,"svcOperationCfsParam":"vmDisksize","label":"Диск VM","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Размер диска под сервис (GB)","man":"Размер диска под сервис (GB)","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":189,"svcOperationCfsParam":"accessIpList","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"IP адреса в CIDR формате через пробел для настройки аксес листов","man":"IP адреса в CIDR формате через пробел для настройки аксес листов","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/24.list b/artifacts/api-meta/dev/operations/24.list new file mode 100644 index 0000000..e69de29 diff --git a/artifacts/api-meta/dev/operations/25.list b/artifacts/api-meta/dev/operations/25.list new file mode 100644 index 0000000..66a862f --- /dev/null +++ b/artifacts/api-meta/dev/operations/25.list @@ -0,0 +1,3 @@ +create 56 +delete 57 +modify 197 diff --git a/artifacts/api-meta/dev/operations/25/197.json b/artifacts/api-meta/dev/operations/25/197.json new file mode 100644 index 0000000..b1ba293 --- /dev/null +++ b/artifacts/api-meta/dev/operations/25/197.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svcOperation":{"svcOperationId":197,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Ip/job/modify/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":627,"svcOperationCfsParam":"serviceUid","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":628,"svcOperationCfsParam":"ipSpaceName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":629,"svcOperationCfsParam":"dnatCreate","label":null,"dataType":"boolean","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":630,"svcOperationCfsParam":"snatCreate","label":null,"dataType":"boolean","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":631,"svcOperationCfsParam":"internalPortAccess","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":632,"svcOperationCfsParam":"internalAddrAccess","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/25/56.json b/artifacts/api-meta/dev/operations/25/56.json new file mode 100644 index 0000000..41fb0d8 --- /dev/null +++ b/artifacts/api-meta/dev/operations/25/56.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":56,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Ip/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":140,"svcOperationCfsParam":"serviceUid","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":336,"svcOperationCfsParam":"ipSpaceName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Тип ip Space (internet-ipv4-v1 / internet-antiddos-v1 / internet-no-antiddos-v1)","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":141,"svcOperationCfsParam":"dnatCreate","label":null,"dataType":"boolean","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходимо создать DNAT-правило.","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":143,"svcOperationCfsParam":"snatCreate","label":null,"dataType":"boolean","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходимо создать SNAT-правило.
","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":142,"svcOperationCfsParam":"internalPortAccess","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"5432","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Порт для связки ната с адресом. Несколько значений можно передавать через пробел. Если передать all, то dnat будет на все порты. Требует dnatCreate=true
","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":144,"svcOperationCfsParam":"internalAddrAccess","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Внутренний адрес для связки ната. Требует dnatCreate=true или snatCreate=true","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":324,"svcOperationCfsParam":"fromServiceNamespace","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Namespace составной услуги (для отображения правил FW)","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":325,"svcOperationCfsParam":"fromServiceCloudEdgeName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Edge составной услуги (указывать, если resourceRealm связан с CloudDirector)","man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":326,"svcOperationCfsParam":"fromServiceCloudVdcName","label":null,"dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Vdc составной услуги (указывать, если resourceRealm связан с CloudDirector)","man":null,"sort":100,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":327,"svcOperationCfsParam":"fromServiceCloudOrgName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Org составной услуги (указывать, если resourceRealm связан с CloudDirector)","man":null,"sort":110,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":328,"svcOperationCfsParam":"fromServiceCloudVmwareUrl","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Api-Url составной услуги (указывать, если resourceRealm связан с CloudDirector)","man":null,"sort":120,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":624,"svcOperationCfsParam":"fromServiceCloudEdgeScope","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":130,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":626,"svcOperationCfsParam":"fromServiceVdcGroupName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":140,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":488,"svcOperationCfsParam":"resourceRealm","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":200,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/25/57.json b/artifacts/api-meta/dev/operations/25/57.json new file mode 100644 index 0000000..fef5a9e --- /dev/null +++ b/artifacts/api-meta/dev/operations/25/57.json @@ -0,0 +1 @@ +{"queryDurationMs":62,"svcOperation":{"svcOperationId":57,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Ip/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":62} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/26.list b/artifacts/api-meta/dev/operations/26.list new file mode 100644 index 0000000..2b82840 --- /dev/null +++ b/artifacts/api-meta/dev/operations/26.list @@ -0,0 +1,4 @@ +resume 209 +suspend 208 +create 69 +delete 70 diff --git a/artifacts/api-meta/dev/operations/26/208.json b/artifacts/api-meta/dev/operations/26/208.json new file mode 100644 index 0000000..fd83c49 --- /dev/null +++ b/artifacts/api-meta/dev/operations/26/208.json @@ -0,0 +1 @@ +{"queryDurationMs":82,"svcOperation":{"svcOperationId":208,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vapp/job/suspend/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":82} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/26/209.json b/artifacts/api-meta/dev/operations/26/209.json new file mode 100644 index 0000000..cb6dfba --- /dev/null +++ b/artifacts/api-meta/dev/operations/26/209.json @@ -0,0 +1 @@ +{"queryDurationMs":73,"svcOperation":{"svcOperationId":209,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vapp/job/resume/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":73} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/26/69.json b/artifacts/api-meta/dev/operations/26/69.json new file mode 100644 index 0000000..90ec694 --- /dev/null +++ b/artifacts/api-meta/dev/operations/26/69.json @@ -0,0 +1 @@ +{"queryDurationMs":84,"svcOperation":{"svcOperationId":69,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vapp/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":623,"svcOperationCfsParam":"vdcUid","label":"UUID Услуги VDC","dataType":"uuid","valueList":null,"refSvcId":21,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID Услуги `Виртуальный датацентр (vDC)`","man":"В каких ресурсах будет создан виртуальный каталог","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":190,"svcOperationCfsParam":"nsxtUid","label":"UUID Услуги Edge","dataType":"uuid","valueList":null,"refSvcId":22,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID Услуги `Сетевой шлюз периметра (Edge)`","man":"К какой сети может быть подключен виртуальный каталог","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":191,"svcOperationCfsParam":"vappName","label":"Имя vApp","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^[a-z0-9][a-z0-9.-]{3,61}[a-z0-9]$","uniqueScope":null,"maxlength":null,"minlength":3,"maxvalue":null,"minvalue":null,"descr":"Уникальное в рамках организации","man":"Имеет строгую маску `^[a-z0-9][a-z0-9.-]{3,61}[a-z0-9]$`

Используется в формировании DNS-Имени (для виртуальных машин)","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":85} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/26/70.json b/artifacts/api-meta/dev/operations/26/70.json new file mode 100644 index 0000000..d740724 --- /dev/null +++ b/artifacts/api-meta/dev/operations/26/70.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svcOperation":{"svcOperationId":70,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vapp/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":58} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/27.list b/artifacts/api-meta/dev/operations/27.list new file mode 100644 index 0000000..8755927 --- /dev/null +++ b/artifacts/api-meta/dev/operations/27.list @@ -0,0 +1,5 @@ +create 100 +delete 101 +resume 102 +suspend 103 +modify 104 diff --git a/artifacts/api-meta/dev/operations/27/100.json b/artifacts/api-meta/dev/operations/27/100.json new file mode 100644 index 0000000..349164c --- /dev/null +++ b/artifacts/api-meta/dev/operations/27/100.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":100,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VmV2/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":301,"svcOperationCfsParam":"serverListJson","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[{}]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":65536,"minlength":10,"maxvalue":null,"minvalue":null,"descr":"Необходимо изменить vappUid и ipSpaceName
Пример конфигурации взять по ссылке ниже

Объект серверов вида [{}] (Map(Object))
Более подробнее смотреть в README.md (https://gitea.mgmt.nubes.ru/cloudServices/vcVmV2)","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/27/101.json b/artifacts/api-meta/dev/operations/27/101.json new file mode 100644 index 0000000..9c01b40 --- /dev/null +++ b/artifacts/api-meta/dev/operations/27/101.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":101,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VmV2/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/27/102.json b/artifacts/api-meta/dev/operations/27/102.json new file mode 100644 index 0000000..0c4d7ae --- /dev/null +++ b/artifacts/api-meta/dev/operations/27/102.json @@ -0,0 +1 @@ +{"queryDurationMs":64,"svcOperation":{"svcOperationId":102,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VmV2/job/resume/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":64} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/27/103.json b/artifacts/api-meta/dev/operations/27/103.json new file mode 100644 index 0000000..6ba1bd0 --- /dev/null +++ b/artifacts/api-meta/dev/operations/27/103.json @@ -0,0 +1 @@ +{"queryDurationMs":61,"svcOperation":{"svcOperationId":103,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VmV2/job/suspend/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":61} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/27/104.json b/artifacts/api-meta/dev/operations/27/104.json new file mode 100644 index 0000000..a6aeaf4 --- /dev/null +++ b/artifacts/api-meta/dev/operations/27/104.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":104,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VmV2/job/modify/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":302,"svcOperationCfsParam":"serverListJson","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[{}]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":65536,"minlength":10,"maxvalue":null,"minvalue":null,"descr":"Объект серверов вида [{}] (Map(Object))
Более подробнее смотреть в README.md (https://gitea.mgmt.nubes.ru/cloudServices/vcVmV2)","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/28.list b/artifacts/api-meta/dev/operations/28.list new file mode 100644 index 0000000..7ba9895 --- /dev/null +++ b/artifacts/api-meta/dev/operations/28.list @@ -0,0 +1,6 @@ +create 132 +modify 159 +delete 133 +suspend 134 +resume 135 +redeploy 164 diff --git a/artifacts/api-meta/dev/operations/28/132.json b/artifacts/api-meta/dev/operations/28/132.json new file mode 100644 index 0000000..c01ef32 --- /dev/null +++ b/artifacts/api-meta/dev/operations/28/132.json @@ -0,0 +1 @@ +{"queryDurationMs":69,"svcOperation":{"svcOperationId":132,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VmV3/job/create/job/master/buildWithParameters","descr":null,"man":"# Документация по использованию услуги развёртывания ВМ в Личном кабинете

Данный сервис позволяет разворачивать виртуальные машины (ВМ) непосредственно из Личного кабинета (ЛК).

## Доступные операции
- **create** — Создание виртуальной машины
- **delete** — Удаление виртуальной машины
- **resume** — Запуск виртуальной машины
- **suspend** — Остановка виртуальной машины

---

## Параметры для развёртывания ВМ

### Обязательные параметры:

**vappUid**
UUID vApp, в которой будет создаваться виртуальная машина.
*Пример: WZ00400*

**vmName**
Уникальное имя виртуальной машины.
*Пример: test-vm*

**vmCpu**
Количество ядер процессора. Должно быть больше 0.
*Пример: 1*

**vmRam**
Объем оперативной памяти в гигабайтах. Должно быть больше 0.
*Пример: 1*


**accessPortList**
Белый список портов для доступа к виртуальной машине извне в формате JSON.
*Пример: ["22","10050]*

**imageVm**
Образ операционной системы для развёртывания.
*Доступные значения: RockyLinux_9-16G-cloudinit, Ubuntu_22-20G, Debian_13-20G*

**userLogin**
Логин пользователя для SSH-доступа.
*По умолчанию: myuser*

**userPublicKey**
Публичный SSH-ключ пользователя в формате OpenSSH.
*Пример: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...*

**needAddZabbixTemplate**
Значение истина\\лож определяющее будет ли добавлен хост в zabbix.
*Пример: true*

### Опциональные параметры:

**accessIpList**
Белый список IP-адресов для доступа к виртуальной машине в формате JSON. Если оставить пустым, вм будет доступена со всех адресов.
*Пример: ["192.168.1.1", "10.0.0.5"]*

**vmDisk**
Размер дополнительного диска в гигабайтах. Должно быть больше 0.
*Пример: 50*

**ipSpaceName**
Внешний IP-адрес. Если не требуется — укажите значение "no-needed".

**cloudInit**
YAML-скрипт для кастомизации системы через cloud-init.

---

## Доступные образы операционных систем

### RockyLinux_9-16G-cloudinit
Базовый образ на основе Rocky Linux 9 (Rocky-9.6-x86_64-minimal) для серверных задач.
- Размер системного диска: 16 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

### Ubuntu_22-20G
Образ на основе Ubuntu Server 22.04 LTS для облачного окружения.
- Размер системного диска: 20 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

### Debian_13-20G
Образ на основе Debian 13 (Trixie) для стабильной серверной работы.
- Размер системного диска: 20 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

---

## Пример использования Cloud-init

```yaml
users:
- name: myuser
sudo: ALL=(ALL) NOPASSWD:ALL
groups: sudo
shell: /bin/bash
ssh-authorized-keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...

packages:
- nginx

runcmd:
- systemctl enable --now nginx
- systemctl restart nginx
```

---

## Результат выполнения

После успешного развёртывания в Личном кабинете появится новая виртуальная машина с заданными характеристиками. SSH-доступ осуществляется с использованием указанных логина и публичного ключа.

---

## Важные примечания

### Особенности работы:
- Для отключения внешнего IP укажите значение "no-needed" в параметре ipSpaceName
- Параметр cloudInit является опциональным

### Ограничения:
- Не рекомендуется использовать продолжительные инструкции в cloud-init (таймаут 5 минут)
- Не поддерживается запись файлов через cloud-init
- Не реализовано создание резервных копий ВМ

---

## Диагностика проблем с cloud-init

### Основной лог-файл:
```bash
/var/log/cloud-init.log
```

### Пакет не устанавливается:
- Проверьте доступность пакета в репозитории
- Убедитесь в правильности написания имени пакета
- Попробуйте установить вручную: `apt install <имя_пакета>` (Debian/Ubuntu) или `dnf install <имя_пакета>` (Rocky Linux)

### Команда не выполняется:
- Проверьте наличие требуемой утилиты в системе
- Убедитесь в правильности синтаксиса команды
- Попробуйте выполнить команду вручную для диагностики","cfsParams":[{"svcOperationCfsParamId":407,"svcOperationCfsParam":"vappUid","label":"UUID vApp","dataType":"uuid","valueList":null,"refSvcId":26,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":408,"svcOperationCfsParam":"vmName","label":"Имя ВМ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":null,"func":null,"regex":"^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":409,"svcOperationCfsParam":"vmCpu","label":"Кол-во ядер","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":64,"minvalue":1,"descr":"шт","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":410,"svcOperationCfsParam":"vmRam","label":"Кол-во ОЗУ","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":256,"minvalue":1,"descr":"Gb","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":411,"svcOperationCfsParam":"vmDisk","label":"Размер дополнительного диска","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?:$|(?:0|[1-9]\\d{0,2}|1\\d{3}|20(?:[0-3]\\d|4[0-8])))$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Основной диск у vm зависит от образа (см. документацию)
Если необходимо дополнительное место для vm, введите колличество Gb в эту форму","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":412,"svcOperationCfsParam":"ipSpaceName","label":"Выделить внешний IP","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":60,"dependsOnCfsParams":"vappUid","isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":413,"svcOperationCfsParam":"accessIpList","label":"Белый список подключения к ВМ","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?:$|\\[\\s*(?:\"(?:\\d{1,3}\\.){3}\\d{1,3}(?:\\/\\d{1,2})?\"(?:\\s*,\\s*\"(?:\\d{1,3}\\.){3}\\d{1,3}(?:\\/\\d{1,2})?\")*)\\s*\\])$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Формат массива
Каким адресам будет предоставлен доступ до вм

Требует выделенного внешнего IP
Если ничего не передано, то выставлено ["0.0.0.0/0"]","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":448,"svcOperationCfsParam":"accessPortList","label":"По каким портам открыть доступ к ВМ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[\"22\"]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"По каким портам открыть доступ к ВМ.
Порты 22, 10050 проставляются автоматически
Пока доступно:
22 - SSH,
80 - HTTP,
443 - HTTPS,
10050 - ZABBIX","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":414,"svcOperationCfsParam":"imageVm","label":"Образ ВМ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":90,"dependsOnCfsParams":"vappUid","isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":416,"svcOperationCfsParam":"userLogin","label":"Логин для подключения","dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"myuser","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Учётка SSH","man":null,"sort":180,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":417,"svcOperationCfsParam":"userPublicKey","label":"Публичная часть SSH-Ключа","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Публичная часть SSH-Ключа для пользователя","man":null,"sort":190,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":415,"svcOperationCfsParam":"cloudInit","label":"Шаблон Cloud-Init","dataType":"yaml","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Можно передать создание дополнительных пользователей.
На текущий момент не реализовано выполнения в cloud-init, установки пакетов, выполнения команд и записи файлов.","man":null,"sort":200,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":449,"svcOperationCfsParam":"needAddZabbixTemplate","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Поле позволяет автоматически добавить новый хост в систему мониторинга Zabbix. После добавления вы сможете в реальном времени просматривать все метрики производительности хоста.","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":70} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/28/133.json b/artifacts/api-meta/dev/operations/28/133.json new file mode 100644 index 0000000..53ad223 --- /dev/null +++ b/artifacts/api-meta/dev/operations/28/133.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":133,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VmV3/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/28/134.json b/artifacts/api-meta/dev/operations/28/134.json new file mode 100644 index 0000000..05f799f --- /dev/null +++ b/artifacts/api-meta/dev/operations/28/134.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":134,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VmV3/job/suspend/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/28/135.json b/artifacts/api-meta/dev/operations/28/135.json new file mode 100644 index 0000000..7ca80af --- /dev/null +++ b/artifacts/api-meta/dev/operations/28/135.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":135,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VmV3/job/resume/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/28/159.json b/artifacts/api-meta/dev/operations/28/159.json new file mode 100644 index 0000000..d4f1135 --- /dev/null +++ b/artifacts/api-meta/dev/operations/28/159.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svcOperation":{"svcOperationId":159,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VmV3/job/modify/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":493,"svcOperationCfsParam":"vmCpu","label":"Кол-во ядер","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":64,"minvalue":1,"descr":"шт","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":494,"svcOperationCfsParam":"vmRam","label":"Кол-во ОЗУ","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":256,"minvalue":1,"descr":"Gb","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":495,"svcOperationCfsParam":"vmDisk","label":"Размер дополнительного диска","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?:$|(?:0|[1-9]\\d{0,2}|1\\d{3}|20(?:[0-3]\\d|4[0-8])))$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Основной диск у vm зависит от образа (см. документацию)
Если необходимо дополнительное место для vm, введите колличество Gb в эту форму","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":496,"svcOperationCfsParam":"ipSpaceName","label":"Выделить внешний IP","dataType":"string","valueList":["no-needed","internet-antiddos-v1","internet-no-antiddos-v1","internet-ipv4-v1"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"no-needed, без внешнего ip
internet-antiddos-v1, с функцией защиты от ddos атак
internet-no-antiddos-v1, с функцией защиты от ddos атак
internet-ipv4-v1 тестовое простанство dev","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":497,"svcOperationCfsParam":"accessIpList","label":"Белый список подключения к ВМ","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Формат массива
Каким адресам будет предоставлен доступ до вм

Требует выделенного внешнего IP
Если ничего не передано, то выставлено ["0.0.0.0/0"]","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":498,"svcOperationCfsParam":"accessPortList","label":"По каким портам открыть доступ к ВМ","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Формат массива
По каким портам открыть доступ к ВМ.
Пока доступно:
22 - SSH,
80 - HTTP,
443 - HTTPS,
10050 - ZABBIX","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":499,"svcOperationCfsParam":"needAddZabbixTemplate","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/28/164.json b/artifacts/api-meta/dev/operations/28/164.json new file mode 100644 index 0000000..ad81afd --- /dev/null +++ b/artifacts/api-meta/dev/operations/28/164.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":164,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VmV3/job/redeploy/job/master/buildWithParameters","descr":"Полная потеря данных гарантирована
Но будет полностью сброшенная машина","man":null,"cfsParams":[{"svcOperationCfsParamId":509,"svcOperationCfsParam":"vmName","label":"Имя ВМ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":510,"svcOperationCfsParam":"vmCpu","label":"Кол-во ядер","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":64,"minvalue":1,"descr":"шт","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":511,"svcOperationCfsParam":"vmRam","label":"Кол-во ОЗУ","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":256,"minvalue":1,"descr":"Gb","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":512,"svcOperationCfsParam":"vmDisk","label":"Размер дополнительного диска","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?:$|(?:0|[1-9]\\d{0,2}|1\\d{3}|20(?:[0-3]\\d|4[0-8])))$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Основной диск у vm зависит от образа (см. документацию)
Если необходимо дополнительное место для vm, введите колличество Gb в эту форму","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":513,"svcOperationCfsParam":"ipSpaceName","label":"Выделить внешний IP","dataType":"string","valueList":["no-needed","internet-antiddos-v1","internet-no-antiddos-v1","internet-ipv4-v1"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"no-needed, без внешнего ip
internet-antiddos-v1, с функцией защиты от ddos атак
internet-no-antiddos-v1, с функцией защиты от ddos атак
internet-ipv4-v1 тестовое простанство dev","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":514,"svcOperationCfsParam":"accessIpList","label":"Белый список подключения к ВМ","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?:$|\\[\\s*(?:\"(?:\\d{1,3}\\.){3}\\d{1,3}(?:\\/\\d{1,2})?\"(?:\\s*,\\s*\"(?:\\d{1,3}\\.){3}\\d{1,3}(?:\\/\\d{1,2})?\")*)\\s*\\])$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Формат массива
Каким адресам будет предоставлен доступ до вм

Требует выделенного внешнего IP
Если ничего не передано, то выставлено ["0.0.0.0/0"]","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":520,"svcOperationCfsParam":"accessPortList","label":"По каким портам открыть доступ к ВМ","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"По каким портам открыть доступ к ВМ.
Порты 22, 10050 проставляются автоматически
Пока доступно:
22 - SSH,
80 - HTTP,
443 - HTTPS,
10050 - ZABBIX","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":515,"svcOperationCfsParam":"imageVm","label":"Образ ВМ","dataType":"string","valueList":["RockyLinux_9-16G-cloudinit","Ubuntu_22-20G","Debian_13-20G"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":516,"svcOperationCfsParam":"userLogin","label":"Логин для подключения","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Учётка SSH","man":null,"sort":180,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":517,"svcOperationCfsParam":"userPublicKey","label":"Публичная часть SSH-Ключа","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Публичная часть SSH-Ключа для пользователя","man":null,"sort":190,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":518,"svcOperationCfsParam":"cloudInit","label":"Шаблон Cloud-Init","dataType":"yaml","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Можно передать создание дополнительных пользователей.
На текущий момент не реализовано выполнения в cloud-init, установки пакетов, выполнения команд и записи файлов.","man":null,"sort":200,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":519,"svcOperationCfsParam":"needAddZabbixTemplate","label":"Поставить VM на мониторинг","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Поле позволяет автоматически добавить новый хост в систему мониторинга Zabbix. После добавления вы сможете в реальном времени просматривать все метрики производительности хоста.","man":null,"sort":300,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/29.list b/artifacts/api-meta/dev/operations/29.list new file mode 100644 index 0000000..e001672 --- /dev/null +++ b/artifacts/api-meta/dev/operations/29.list @@ -0,0 +1,5 @@ +create 191 +add_vdc 192 +reconcile 251 +remove_vdc 193 +delete 195 diff --git a/artifacts/api-meta/dev/operations/29/191.json b/artifacts/api-meta/dev/operations/29/191.json new file mode 100644 index 0000000..b85ff97 --- /dev/null +++ b/artifacts/api-meta/dev/operations/29/191.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":191,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VdcGroup/job/create/job/master/buildWithParameters","descr":null,"man":"**VDC Группа** нужна для объединения всех VDC в организации в одну логическую группу.
Это позволит, к примеру, создать **общую сеть** для всех VDC в организации

- Для создания группы VDC необходимо указать **инстанс** услуги VDC (`Виртуальный датацентр`)
- **Важный момент** - удалить эту VDC из группы нельзя. Если такая потребность появится, необходимо будет **ПОЛНОСТЬЮ** удалить группу VDC и уже потом создать новую","cfsParams":[{"svcOperationCfsParamId":618,"svcOperationCfsParam":"vdcUid","label":"UUID VDC","dataType":"uuid","valueList":null,"refSvcId":21,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/29/192.json b/artifacts/api-meta/dev/operations/29/192.json new file mode 100644 index 0000000..be9c5e5 --- /dev/null +++ b/artifacts/api-meta/dev/operations/29/192.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":192,"operation":"add_vdc","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VdcGroup/job/add_vdc/job/master/buildWithParameters","descr":null,"man":"**Не нужно** выбирать UUID VDC, который уже был добавлен в группу","cfsParams":[{"svcOperationCfsParamId":619,"svcOperationCfsParam":"vdcUid","label":"Какой VDC добавить в группу","dataType":"uuid","valueList":null,"refSvcId":21,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/29/193.json b/artifacts/api-meta/dev/operations/29/193.json new file mode 100644 index 0000000..bdbdca5 --- /dev/null +++ b/artifacts/api-meta/dev/operations/29/193.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":193,"operation":"remove_vdc","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VdcGroup/job/remove_vdc/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":620,"svcOperationCfsParam":"vdcName","label":"Какой VDC удалить из группы","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/29/195.json b/artifacts/api-meta/dev/operations/29/195.json new file mode 100644 index 0000000..143f08e --- /dev/null +++ b/artifacts/api-meta/dev/operations/29/195.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":195,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VdcGroup/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/29/251.json b/artifacts/api-meta/dev/operations/29/251.json new file mode 100644 index 0000000..3500495 --- /dev/null +++ b/artifacts/api-meta/dev/operations/29/251.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svcOperation":{"svcOperationId":251,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VdcGroup/job/reconcile/job/master/buildWithParameters","descr":"Необходимо для актуализации состояния группы датацентров.
Операция приводит инстанс услуги к текущей целевой модели, принятой в Личном Кабинете: обновляет информацию из Cloud Director, производит миграцию состояния услуги до последней версии схемы","man":null,"cfsParams":[]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/32.list b/artifacts/api-meta/dev/operations/32.list new file mode 100644 index 0000000..a4500d6 --- /dev/null +++ b/artifacts/api-meta/dev/operations/32.list @@ -0,0 +1,2 @@ +create 32 +delete 33 diff --git a/artifacts/api-meta/dev/operations/32/32.json b/artifacts/api-meta/dev/operations/32/32.json new file mode 100644 index 0000000..88d6a3f --- /dev/null +++ b/artifacts/api-meta/dev/operations/32/32.json @@ -0,0 +1 @@ +{"queryDurationMs":60,"svcOperation":{"svcOperationId":32,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/cloud/job/pgsqlStd/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":45,"svcOperationCfsParam":"vmUid","label":"InstanceUid ВМ","dataType":"uuid","valueList":null,"refSvcId":23,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"InstanceUid ВМ. ВМ должна быть создана
","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":46,"svcOperationCfsParam":"userDb","label":"Наименование Базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"servicedb","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Наименование Базы данных
","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":47,"svcOperationCfsParam":"userLogin","label":"Пользователь базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"serviceuser","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пользователь базы данных
","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":48,"svcOperationCfsParam":"userPassword","label":"Пароль от доступа к Базе данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"fj29gm48fm!d374mc9","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пароль от доступа к Базе данных
","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":278,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":61} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/32/33.json b/artifacts/api-meta/dev/operations/32/33.json new file mode 100644 index 0000000..32098b6 --- /dev/null +++ b/artifacts/api-meta/dev/operations/32/33.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":33,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/cloud/job/pgsqlStd/job/delete/job/master/buildWithParameters","descr":"При удалении удаляется раздел с данными. Выполнять осторожно!","man":null,"cfsParams":[]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/50.list b/artifacts/api-meta/dev/operations/50.list new file mode 100644 index 0000000..889dd6d --- /dev/null +++ b/artifacts/api-meta/dev/operations/50.list @@ -0,0 +1,6 @@ +suspend 128 +resume 129 +create 16 +delete 17 +restart 66 +modify 67 diff --git a/artifacts/api-meta/dev/operations/50/128.json b/artifacts/api-meta/dev/operations/50/128.json new file mode 100644 index 0000000..cc8ef60 --- /dev/null +++ b/artifacts/api-meta/dev/operations/50/128.json @@ -0,0 +1 @@ +{"queryDurationMs":59,"svcOperation":{"svcOperationId":128,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nextcloud/job/suspend/job/","descr":"Не работает из за проблемы с отсуствием механизма зануления реплики (в вейлюсах нельзя задать количство реплик)","man":null,"cfsParams":[]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/50/129.json b/artifacts/api-meta/dev/operations/50/129.json new file mode 100644 index 0000000..61a6770 --- /dev/null +++ b/artifacts/api-meta/dev/operations/50/129.json @@ -0,0 +1 @@ +{"queryDurationMs":59,"svcOperation":{"svcOperationId":129,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nextcloud/job/resume/job/","descr":null,"man":null,"cfsParams":[]},"runDurationMs":60} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/50/16.json b/artifacts/api-meta/dev/operations/50/16.json new file mode 100644 index 0000000..203bb38 --- /dev/null +++ b/artifacts/api-meta/dev/operations/50/16.json @@ -0,0 +1 @@ +{"queryDurationMs":59,"svcOperation":{"svcOperationId":16,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nextcloud/job/create/job/master/buildWithParameters","descr":"Ресурсная платформа берётся из PSQL UUID","man":"DEV-Ветка сборки Nextcloud","cfsParams":[{"svcOperationCfsParamId":564,"svcOperationCfsParam":"psqlUid","label":"Кластер услуги k8sPgsql","dataType":"uuid","valueList":null,"refSvcId":90,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":6,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":570,"svcOperationCfsParam":"redisUid","label":"Кластер услуги k8sRedis","dataType":"uuid","valueList":null,"refSvcId":91,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":7,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":21,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Наименование домена. Если будет указан FQDN, то происходят проверки DNS. Если указан поддомен, то будет добавлен в зону services.ngcloud.ru
Можно указать клиентскую DNS-Запись. Важно, чтобы запись смотрела на Ingress кластера","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":569,"svcOperationCfsParam":"appVersion","label":"Версия Nextcloud","dataType":null,"valueList":["32.0.1"],"refSvcId":null,"isRequired":true,"defaultValue":"32.0.1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":99,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1000","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili). 1 ядро = 1000 Mili","man":"Квота ядра пода (Указывается в mili). 1 ядро = 1000 Mili","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":100,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1024","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":1024,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":101,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"2","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":2,"descr":"Квота диска (Указывается в GIGAbytes)
Диск не может быть меньше 2G (!)","man":"Квота диска (Указывается в GIGAbytes)","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":470,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":["1"],"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов
Не может пока быть больше одного, так как нужны SC под RWMany","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":192,"svcOperationCfsParam":"documentServer","label":"Сервер документов","dataType":"string","valueList":["collabora"],"refSvcId":null,"isRequired":true,"defaultValue":"collabora","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбор сервера документов (onlyoffice)/(collabora). onlyoffice пока не доступен
Размер пода collabora:
1.8 ядра. 2Gi ОЗУ","man":"Выбор сервера документов (onlyoffice)/(collabora). onlyoffice пока не доступен","sort":100,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":60} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/50/17.json b/artifacts/api-meta/dev/operations/50/17.json new file mode 100644 index 0000000..2582dc5 --- /dev/null +++ b/artifacts/api-meta/dev/operations/50/17.json @@ -0,0 +1 @@ +{"queryDurationMs":47,"svcOperation":{"svcOperationId":17,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nextcloud/job/delete/job/master/buildWithParameters","descr":"DEV-Ветка удаления Nextcloud","man":"DEV-Ветка удаления Nextcloud","cfsParams":[]},"runDurationMs":47} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/50/66.json b/artifacts/api-meta/dev/operations/50/66.json new file mode 100644 index 0000000..15450e1 --- /dev/null +++ b/artifacts/api-meta/dev/operations/50/66.json @@ -0,0 +1 @@ +{"queryDurationMs":67,"svcOperation":{"svcOperationId":66,"operation":"restart","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nextcloud/job/restart/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":67} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/50/67.json b/artifacts/api-meta/dev/operations/50/67.json new file mode 100644 index 0000000..6260a2a --- /dev/null +++ b/artifacts/api-meta/dev/operations/50/67.json @@ -0,0 +1 @@ +{"queryDurationMs":61,"svcOperation":{"svcOperationId":67,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nextcloud/job/modify/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":178,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili)","man":"Квота ядра пода (Указывается в mili)","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":179,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":180,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":547,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":["1"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов.
Не может пока быть больше одного, так как нужны SC под RWMany","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":571,"svcOperationCfsParam":"appVersion","label":"Версия Nextcloud","dataType":"string","valueList":["32.0.1"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Нельзя обновляться сразу через несколько версий сразу","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":62} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/81.list b/artifacts/api-meta/dev/operations/81.list new file mode 100644 index 0000000..43104aa --- /dev/null +++ b/artifacts/api-meta/dev/operations/81.list @@ -0,0 +1,2 @@ +delete 13 +create 12 diff --git a/artifacts/api-meta/dev/operations/81/12.json b/artifacts/api-meta/dev/operations/81/12.json new file mode 100644 index 0000000..3712271 --- /dev/null +++ b/artifacts/api-meta/dev/operations/81/12.json @@ -0,0 +1 @@ +{"queryDurationMs":107,"svcOperation":{"svcOperationId":12,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Superset/job/create/job/refactor/buildWithParameters","descr":"DEV-Ветка сборки Superset","man":"DEV-Ветка сборки Superset","cfsParams":[{"svcOperationCfsParamId":14,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":109,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":96,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili). 1000 Mili = 1 ядро","man":"Квота ядра пода (Указывается в mili). 1000 Mili = 1 ядро","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":97,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":98,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":227,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":20,"svcOperationCfsParam":"emails","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"testuser1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Учётная запись, которой будут выданы админские права. В формате email [ну не совсем. Для доменных учетных записей - без доменного суффикса]. Обязана находиться в Keycloak. Можно передавать несколько через пробел","man":"Учётная запись, которой будут выданы админские права. В формате email [ну не совсем. Для доменных учетных записей - без доменного суффикса]. Обязана находиться в Keycloak. Можно передавать несколько через пробел","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":108} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/81/13.json b/artifacts/api-meta/dev/operations/81/13.json new file mode 100644 index 0000000..a323502 --- /dev/null +++ b/artifacts/api-meta/dev/operations/81/13.json @@ -0,0 +1 @@ +{"queryDurationMs":63,"svcOperation":{"svcOperationId":13,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Superset/job/delete/job/refactor/buildWithParameters","descr":"DEV-Ветка удаления Superset","man":"DEV-Ветка удаления Superset","cfsParams":[]},"runDurationMs":63} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/82.list b/artifacts/api-meta/dev/operations/82.list new file mode 100644 index 0000000..e06bc95 --- /dev/null +++ b/artifacts/api-meta/dev/operations/82.list @@ -0,0 +1,2 @@ +create 14 +delete 15 diff --git a/artifacts/api-meta/dev/operations/82/14.json b/artifacts/api-meta/dev/operations/82/14.json new file mode 100644 index 0000000..2fb0047 --- /dev/null +++ b/artifacts/api-meta/dev/operations/82/14.json @@ -0,0 +1 @@ +{"queryDurationMs":80,"svcOperation":{"svcOperationId":14,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Registry/job/create/job/refactor/buildWithParameters","descr":"DEV-Ветка сборки Harbor","man":"DEV-Ветка сборки Harbor","cfsParams":[{"svcOperationCfsParamId":231,"svcOperationCfsParam":"s3Uid","label":null,"dataType":"uuid","valueList":null,"refSvcId":12,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID экземпляра услуги S3","man":"UUID экземпляра услуги S3","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":16,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":110,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":228,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"100","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро","man":"Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":229,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"200","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":230,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":17,"svcOperationCfsParam":"emails","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"testuser1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Учётная запись, которой будут выданы админские права. Обязана находиться в Keycloak. Можно передавать несколько через пробел","man":"Учётная запись, которой будут выданы админские права. Обязана находиться в Keycloak. Можно передавать несколько через пробел","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":81} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/82/15.json b/artifacts/api-meta/dev/operations/82/15.json new file mode 100644 index 0000000..d46adfc --- /dev/null +++ b/artifacts/api-meta/dev/operations/82/15.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":15,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Registry/job/delete/job/refactor/buildWithParameters","descr":"DEV-Ветка удаления Harbor","man":"DEV-Ветка удаления Harbor","cfsParams":[]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/88.list b/artifacts/api-meta/dev/operations/88.list new file mode 100644 index 0000000..5a1fbe3 --- /dev/null +++ b/artifacts/api-meta/dev/operations/88.list @@ -0,0 +1,2 @@ +create 99 +delete 105 diff --git a/artifacts/api-meta/dev/operations/88/105.json b/artifacts/api-meta/dev/operations/88/105.json new file mode 100644 index 0000000..759020d --- /dev/null +++ b/artifacts/api-meta/dev/operations/88/105.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":105,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/ZitiController/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/88/99.json b/artifacts/api-meta/dev/operations/88/99.json new file mode 100644 index 0000000..4a6bbe9 --- /dev/null +++ b/artifacts/api-meta/dev/operations/88/99.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":99,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/ZitiController/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":299,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":"provider","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":298,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":294,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"300","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (milicores)","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":295,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":296,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":297,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/89.list b/artifacts/api-meta/dev/operations/89.list new file mode 100644 index 0000000..db34c5b --- /dev/null +++ b/artifacts/api-meta/dev/operations/89.list @@ -0,0 +1,5 @@ +resume 145 +modify 146 +delete 89 +suspend 125 +create 88 diff --git a/artifacts/api-meta/dev/operations/89/125.json b/artifacts/api-meta/dev/operations/89/125.json new file mode 100644 index 0000000..eaeee2e --- /dev/null +++ b/artifacts/api-meta/dev/operations/89/125.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":125,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Flask/","descr":null,"man":null,"cfsParams":[]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/89/145.json b/artifacts/api-meta/dev/operations/89/145.json new file mode 100644 index 0000000..ea3448c --- /dev/null +++ b/artifacts/api-meta/dev/operations/89/145.json @@ -0,0 +1 @@ +{"queryDurationMs":61,"svcOperation":{"svcOperationId":145,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Flask/","descr":null,"man":null,"cfsParams":[]},"runDurationMs":61} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/89/146.json b/artifacts/api-meta/dev/operations/89/146.json new file mode 100644 index 0000000..8ff5204 --- /dev/null +++ b/artifacts/api-meta/dev/operations/89/146.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":146,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Flask/job/modify/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":451,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8000,"minvalue":100,"descr":"Пример: `1000`","man":"Указывается в Milicores
`1000` Mili == `1` Ядро","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":452,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Пример: `2048`","man":"Указывается в Megabytes","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":453,"svcOperationCfsParam":"resourceInstances","label":"Кол-во реплик пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `3`","man":"Балансировка производится между всеми репликами","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":454,"svcOperationCfsParam":"gitPath","label":"URL Проекта (gitpath)","dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `https://github.com/myuser/myproject.git`","man":"Проект должен быть публичным","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":455,"svcOperationCfsParam":"jsonEnv","label":"Переменные окружения пода","dataType":"map","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Структура, которая будет передана как переменные окружения","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/89/88.json b/artifacts/api-meta/dev/operations/89/88.json new file mode 100644 index 0000000..95bd0fe --- /dev/null +++ b/artifacts/api-meta/dev/operations/89/88.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":88,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Flask/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":248,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Если будет указан `FQDN`, то происходят проверки DNS на валидность А-записи. А-запись **обязана смотреть на балансировщик** ресурсной платформы.
Если указано имя `в рамках одного октета`, будет добавлено **в публичную днс-зону**","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":249,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Кластер Kubernetes в котором будет развёрнуто приложение","man":"Выбрать платформу из списка

**Если список не отображается**
обратитесь к сервис менеджеру с вопросом предоставления ресурсной платформы","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":250,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"300","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8000,"minvalue":100,"descr":"Пример: `1000`","man":"Указывается в Milicores
`1000` Mili == `1` Ядро","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":251,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"256","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Пример: `2048`","man":"Указывается в Megabytes","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":252,"svcOperationCfsParam":"resourceInstances","label":"Кол-во реплик пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `3`","man":"Балансировка производится между всеми репликами","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":253,"svcOperationCfsParam":"gitPath","label":"URL Проекта (gitpath)","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"https://github.com/Foxyhhd/Baldurs-Gate-test.git","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `https://github.com/myuser/myproject.git`","man":"Проект должен быть публичным","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":255,"svcOperationCfsParam":"healthPath","label":"URL HealthCheck","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `/api/v1/health`","man":"Может быть пустым. Если ничего не передано, проверяется `tcpsocket`
Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":254,"svcOperationCfsParam":"jsonEnv","label":"Переменные окружения пода","dataType":"map","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Структура, которая будет передана как переменные окружения","sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/89/89.json b/artifacts/api-meta/dev/operations/89/89.json new file mode 100644 index 0000000..e8c9a3e --- /dev/null +++ b/artifacts/api-meta/dev/operations/89/89.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":89,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Flask/job/delete/job/master/buildWithParameters","descr":null,"man":"Удаление возможно только после остановки сервиса через операцию `suspend`
После выполнения операции необходимо выждать определенное кол-во времени","cfsParams":[]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/90.list b/artifacts/api-meta/dev/operations/90.list new file mode 100644 index 0000000..ec9b7d2 --- /dev/null +++ b/artifacts/api-meta/dev/operations/90.list @@ -0,0 +1,11 @@ +create_user 241 +delete_user 244 +resume 114 +suspend 115 +create_database 245 +restart 54 +delete_database 246 +create 19 +delete 20 +modify 48 +recovery 47 diff --git a/artifacts/api-meta/dev/operations/90/114.json b/artifacts/api-meta/dev/operations/90/114.json new file mode 100644 index 0000000..cc81bf2 --- /dev/null +++ b/artifacts/api-meta/dev/operations/90/114.json @@ -0,0 +1 @@ +{"queryDurationMs":62,"svcOperation":{"svcOperationId":114,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgsql/job/suspend/job/","descr":null,"man":null,"cfsParams":[]},"runDurationMs":62} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/90/115.json b/artifacts/api-meta/dev/operations/90/115.json new file mode 100644 index 0000000..7231e8f --- /dev/null +++ b/artifacts/api-meta/dev/operations/90/115.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":115,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgsql/job/suspend/job/","descr":null,"man":null,"cfsParams":[]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/90/19.json b/artifacts/api-meta/dev/operations/90/19.json new file mode 100644 index 0000000..d0734e7 --- /dev/null +++ b/artifacts/api-meta/dev/operations/90/19.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":19,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgsql/job/create/job/master/buildWithParameters","descr":"описание","man":"руководство","cfsParams":[{"svcOperationCfsParamId":102,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Кластер Kubernetes, на котором будет развернут экземпляр","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":23,"svcOperationCfsParam":"s3Uid","label":"Услуга S3 для резервных копий.","dataType":"uuid","valueList":null,"refSvcId":12,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Экземпляр (учетная запись) S3 для резервного копирования. Резервное копирование обязательно","man":"Экземпляр (учетная запись) S3 для резервного копирования. Резервное копирование обязательно","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":82,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (milicores)","man":"Квота ядра пода (milicores)","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":81,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":"Квота памяти пода (MBytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":83,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":80,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":"^[1357]$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в кластере. 1,3,5,7","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":145,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделение белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний (белый) IP для доступа к master","man":"Выделяет внешний (белый) IP для доступа к master","sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":337,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации VIP master","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster. Пример: `internet-no-antiddos-v1`","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":146,"svcOperationCfsParam":"needExternalAddressSlave","label":"Выделение белого ip для slave ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний (белый) IP для доступа к slave. Будет работать, если slave в принципе есть","man":"Выделяет внешний (белый) IP для доступа к slave. Будет работать, если slave в принципе есть","sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":338,"svcOperationCfsParam":"ipSpaceNameSlave","label":"Имя ipSpace для публикации VIP slave","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP slave. Не может быть пустым, если включен needExternalAddressSlave","man":null,"sort":100,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":266,"svcOperationCfsParam":"ext_BACKUP_NUM_TO_RETAIN","label":"Количество резервных копий","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"7","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":99,"minvalue":1,"descr":null,"man":"Не обязательный. Количество сохраняемых бекапов","sort":140,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":265,"svcOperationCfsParam":"ext_BACKUP_SCHEDULE","label":"Расписание резервного копирования","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"0 0 * * *","defaultCompute":null,"func":null,"regex":"^((((\\d+,)+\\d+|(\\d+(\\/|-|#)\\d+)|(\\d+L?)|(\\*(\\/\\d+)?)|(L(-\\d+)?)|(\\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\\d+(ns|us|µs|ms|s|m|h))+)$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Не обязательный. Время запуска бекапа","sort":150,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":310,"svcOperationCfsParam":"appVersion","label":"Версия PostgreSQL","dataType":"string","valueList":["17","16","15","14","13"],"refSvcId":null,"isRequired":true,"defaultValue":"17","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия PostgreSQL","man":null,"sort":160,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":311,"svcOperationCfsParam":"jsonParameters","label":"Параметры postgresql.conf в виде JSON","dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"{ \"log_connections\": \"off\", \"log_disconnections\": \"off\" }","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":2048,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Массив переменных, более подробнее про настройку можно посмотреть https://www.postgresql.org/docs/current/runtime-config.html","man":null,"sort":170,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":312,"svcOperationCfsParam":"enablePgPoolerMaster","label":"Включить pgPooler для Master","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает pgPooler (на запись). Будет создан новый под","man":null,"sort":180,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":313,"svcOperationCfsParam":"enablePgPoolerSlave","label":"Включить pgPooler для Slave","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает pgPooler (на чтение). Будет создан новый под","man":null,"sort":190,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":314,"svcOperationCfsParam":"allowNoSSL","label":"Выключить sslmode","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"По умолчанию подключение обязательное (sslmode=require). Выставление в true отключит этот параметр","man":null,"sort":200,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":329,"svcOperationCfsParam":"autoScale","label":"Включить autoScale","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает автоскейлинг PV. При включении параметра необходимо настроить autoScalePercentage и autoScaleTechWindow. Алерт при срабатывании вызывает modify у текущей услуги","man":null,"sort":300,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":330,"svcOperationCfsParam":"autoScalePercentage","label":"На сколько % расширяться диск (мин. 1G)","dataType":"integer > 0","valueList":["10","15","20"],"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Требует включения autoScale. Позволяет указать в процентах расширение от текущего макс объема","man":null,"sort":310,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":331,"svcOperationCfsParam":"autoScaleTechWindow","label":"Тех окно обновления дисков","dataType":"integer >= 0","valueList":["0","5","12","23"],"refSvcId":null,"isRequired":true,"defaultValue":"0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Требует включения autoScale. Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23)","man":null,"sort":320,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":339,"svcOperationCfsParam":"autoScaleQuotaGb","label":"Квота для autoScale","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Квота для autoScale","man":null,"sort":330,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/90/20.json b/artifacts/api-meta/dev/operations/90/20.json new file mode 100644 index 0000000..882c903 --- /dev/null +++ b/artifacts/api-meta/dev/operations/90/20.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":20,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgsql/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":457,"svcOperationCfsParam":"deleteS3Bucket","label":"Также удалить технический S3 Bucket с бэкапами?","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Также удалить технический S3 Bucket с бэкапами?","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/90/241.json b/artifacts/api-meta/dev/operations/90/241.json new file mode 100644 index 0000000..4bfd42a --- /dev/null +++ b/artifacts/api-meta/dev/operations/90/241.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":241,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgsql/job/create_user/job/","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":733,"svcOperationCfsParam":"username","label":"Имя создаваемого пользователя. Используется для подключения к базе и настройки прав.","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":740,"svcOperationCfsParam":"role","label":"Имя создаваемого роли","dataType":"string","valueList":["app_user","ddl_user"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать роль из списка","man":"`app_user` — стандартный пользователь с базовым набором прав
`ddl_user` — пользователь с расширенными правами, включая управление ролями и базами данных","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/90/244.json b/artifacts/api-meta/dev/operations/90/244.json new file mode 100644 index 0000000..09f72fd --- /dev/null +++ b/artifacts/api-meta/dev/operations/90/244.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":244,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgsql/job/delete_user/job/","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":739,"svcOperationCfsParam":"username","label":"Имя удаляемого пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `username-admin`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/90/245.json b/artifacts/api-meta/dev/operations/90/245.json new file mode 100644 index 0000000..568b5e1 --- /dev/null +++ b/artifacts/api-meta/dev/operations/90/245.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":245,"operation":"create_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgsql/job/create_database/job/","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":741,"svcOperationCfsParam":"dbName","label":"Имя создаваемой базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":742,"svcOperationCfsParam":"dbOwner","label":"Имя пользователя-владельца базы данных. Должен существовать в кластере","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/90/246.json b/artifacts/api-meta/dev/operations/90/246.json new file mode 100644 index 0000000..f2ce36f --- /dev/null +++ b/artifacts/api-meta/dev/operations/90/246.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":246,"operation":"delete_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgsql/job/delete_database/job/","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":743,"svcOperationCfsParam":"dbName","label":"Название удаляемой базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/90/47.json b/artifacts/api-meta/dev/operations/90/47.json new file mode 100644 index 0000000..1dfcc24 --- /dev/null +++ b/artifacts/api-meta/dev/operations/90/47.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":47,"operation":"recovery","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgsql/job/recovery/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":131,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":88,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili)
","man":"Квота ядра пода (Указывается в mili)
","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":87,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)
","man":"Квота памяти пода (Указывается в Megabytes)
","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":89,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":86,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети
","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/90/48.json b/artifacts/api-meta/dev/operations/90/48.json new file mode 100644 index 0000000..85ca9b8 --- /dev/null +++ b/artifacts/api-meta/dev/operations/90/48.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":48,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgsql/job/modify/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":93,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (milicores)","man":"Квота ядра пода (milicores)","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":92,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":"Квота памяти пода (MBytes)","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":94,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":91,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":147,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделение белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP для доступа к master","man":"Выделяет внешний IP для доступа к master","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":541,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации VIP master","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster. Пример: `internet-no-antiddos-v1`","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":148,"svcOperationCfsParam":"needExternalAddressSlave","label":"Выделение белого ip для slave ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP для доступа к slave. Действует, если slave в принципе есть","man":"Выделяет внешний IP для доступа к slave. Действует, если slave в принципе есть","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":542,"svcOperationCfsParam":"ipSpaceNameSlave","label":"Имя ipSpace для публикации VIP slave","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP slave. Не может быть пустым, если включен needExternalAddressSlave","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":267,"svcOperationCfsParam":"ext_BACKUP_SCHEDULE","label":"Расписание резервного копирования","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^((((\\d+,)+\\d+|(\\d+(\\/|-|#)\\d+)|(\\d+L?)|(\\*(\\/\\d+)?)|(L(-\\d+)?)|(\\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\\d+(ns|us|µs|ms|s|m|h))+)$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Не обязательный. Время запуска бекапа","sort":90,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":268,"svcOperationCfsParam":"ext_BACKUP_NUM_TO_RETAIN","label":"Количество резервных копий","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":99,"minvalue":1,"descr":null,"man":"Не обязательный. Количество сохраняемых бекапов","sort":100,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":315,"svcOperationCfsParam":"appVersion","label":"Версия PostgreSQL","dataType":"string","valueList":["17","16","15","14","13"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия PostgreSQL. Нельзя опускать вниз","man":null,"sort":110,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":316,"svcOperationCfsParam":"jsonParameters","label":"Параметры postgresql.conf в виде JSON","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":2048,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Массив переменных, более подробнее про настройку можно посмотреть https://www.postgresql.org/docs/current/runtime-config.html","man":null,"sort":120,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":317,"svcOperationCfsParam":"enablePgPoolerMaster","label":"Включить pgPooler для Master","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает pgPooler (на запись). Будет создан новый под","man":null,"sort":130,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":318,"svcOperationCfsParam":"enablePgPoolerSlave","label":"Включить pgPooler для Slave","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает pgPooler (на чтение). Будет создан новый под","man":null,"sort":140,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":319,"svcOperationCfsParam":"allowNoSSL","label":"Выключить sslmode","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"По умолчанию подключение обязательное (sslmode=require). Выставление в true отключит этот параметр","man":null,"sort":150,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/90/54.json b/artifacts/api-meta/dev/operations/90/54.json new file mode 100644 index 0000000..c417f05 --- /dev/null +++ b/artifacts/api-meta/dev/operations/90/54.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":54,"operation":"restart","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgsql/job/restart/job/master/buildWithParameters","descr":"ВНИМАНИЕ - Редеплой предполагает УДАЛЕНИЕ подов.
Может быть полная поломка. Крайне осторожно запускать при работе.
Нет возможности нормально мигрировать на другую платформу средствами Redeploy, так как есть привязка к S3.
Поэтому если нужно смигрировать на другой кластер Kubernetes - использовать необходимо Restore","man":"ВНИМАНИЕ - Рестарт предполагает УДАЛЕНИЕ подов.
Может быть полная поломка. Крайне осторожно запускать при работе","cfsParams":[]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/91.list b/artifacts/api-meta/dev/operations/91.list new file mode 100644 index 0000000..14b4bee --- /dev/null +++ b/artifacts/api-meta/dev/operations/91.list @@ -0,0 +1,2 @@ +delete 22 +create 21 diff --git a/artifacts/api-meta/dev/operations/91/21.json b/artifacts/api-meta/dev/operations/91/21.json new file mode 100644 index 0000000..bce111e --- /dev/null +++ b/artifacts/api-meta/dev/operations/91/21.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":21,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Redis/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":182,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения
","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":112,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1000","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":500,"descr":"Квота ядра пода (Указывается в mili)","man":"Квота ядра пода (Указывается в mili)","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":113,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1024","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":512,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":114,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"30","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":10,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":181,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети. Если выделить больше 1 ноды, будет добавлено дополнительно 3 Sentinel ноды","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":183,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделение белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP для доступа к master","man":"Выделяет внешний IP для доступа к master","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":184,"svcOperationCfsParam":"needExternalAddressSlave","label":"Выделение белого ip для slave ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP для доступа к slave. Будет работать если slave в целом есть","man":"Выделяет внешний IP для доступа к slave. Будет работать если slave в целом есть","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":548,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации VIP master","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":549,"svcOperationCfsParam":"ipSpaceNameSlave","label":"Имя ipSpace для публикации VIP slave","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP slave. Не может быть пустым, если включен needExternalAddressSlave","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/91/22.json b/artifacts/api-meta/dev/operations/91/22.json new file mode 100644 index 0000000..6c89274 --- /dev/null +++ b/artifacts/api-meta/dev/operations/91/22.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":22,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Redis/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/92.list b/artifacts/api-meta/dev/operations/92.list new file mode 100644 index 0000000..c95b8e9 --- /dev/null +++ b/artifacts/api-meta/dev/operations/92.list @@ -0,0 +1,8 @@ +delete 190 +create_user 198 +create 37 +delete_user 199 +modify_user 200 +modify 201 +suspend 194 +resume 196 diff --git a/artifacts/api-meta/dev/operations/92/190.json b/artifacts/api-meta/dev/operations/92/190.json new file mode 100644 index 0000000..93b0e0b --- /dev/null +++ b/artifacts/api-meta/dev/operations/92/190.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":190,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/MongoDB/job/delete/job/","descr":null,"man":null,"cfsParams":[]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/92/194.json b/artifacts/api-meta/dev/operations/92/194.json new file mode 100644 index 0000000..68b4ce5 --- /dev/null +++ b/artifacts/api-meta/dev/operations/92/194.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":194,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/MongoDB/job/suspend/job/","descr":null,"man":null,"cfsParams":[]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/92/196.json b/artifacts/api-meta/dev/operations/92/196.json new file mode 100644 index 0000000..1c568a1 --- /dev/null +++ b/artifacts/api-meta/dev/operations/92/196.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":196,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/MongoDB/job/resume/job/","descr":null,"man":null,"cfsParams":[]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/92/198.json b/artifacts/api-meta/dev/operations/92/198.json new file mode 100644 index 0000000..7514db0 --- /dev/null +++ b/artifacts/api-meta/dev/operations/92/198.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svcOperation":{"svcOperationId":198,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/MongoDB/job/create_user/job/","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":635,"svcOperationCfsParam":"username","label":"Имя пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":636,"svcOperationCfsParam":"dbName","label":"Имя базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":643,"svcOperationCfsParam":"role","label":"Имя роли","dataType":"string","valueList":["dbOwner","read","readWrite"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/92/199.json b/artifacts/api-meta/dev/operations/92/199.json new file mode 100644 index 0000000..e9bcf75 --- /dev/null +++ b/artifacts/api-meta/dev/operations/92/199.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":199,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/MongoDB/job/delete_user/job/","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":644,"svcOperationCfsParam":"username","label":"Имя пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/92/200.json b/artifacts/api-meta/dev/operations/92/200.json new file mode 100644 index 0000000..daeab8e --- /dev/null +++ b/artifacts/api-meta/dev/operations/92/200.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svcOperation":{"svcOperationId":200,"operation":"modify_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/MongoDB/job/modify_user/job/","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":640,"svcOperationCfsParam":"username","label":"Имя пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":641,"svcOperationCfsParam":"dbName","label":"Имя базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":642,"svcOperationCfsParam":"role","label":"Имя роли","dataType":"string","valueList":["dbOwner","read","readWrite"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":58} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/92/201.json b/artifacts/api-meta/dev/operations/92/201.json new file mode 100644 index 0000000..510dcd2 --- /dev/null +++ b/artifacts/api-meta/dev/operations/92/201.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":201,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/MongoDB/job/modify/job/","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":648,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов в сети","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `2`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":649,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Mb)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `2048`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":650,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (mCPU)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `1000`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":651,"svcOperationCfsParam":"resourceDisk","label":"Размер диска(Gb)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `20`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":652,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделяет внешний IP для доступа к master","dataType":"boolean","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Флаг, определяющий, нужно ли выделять внешний IP для доступа к master. Пример: `true` или `false`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":653,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/92/37.json b/artifacts/api-meta/dev/operations/92/37.json new file mode 100644 index 0000000..367af65 --- /dev/null +++ b/artifacts/api-meta/dev/operations/92/37.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":37,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/MongoDB/job/create/job/","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":487,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов в сети","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `2`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":595,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать платформу из списка","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":588,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Mb)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":500,"descr":"Пример: `2048`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":589,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (mCPU)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `1000`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":590,"svcOperationCfsParam":"resourceDisk","label":"Размер диска(Gb)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `20`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":645,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделяет внешний IP для доступа к master","dataType":"boolean","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-брокеру. Пример: `true` или `false`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":646,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/93.list b/artifacts/api-meta/dev/operations/93.list new file mode 100644 index 0000000..d01c673 --- /dev/null +++ b/artifacts/api-meta/dev/operations/93.list @@ -0,0 +1,5 @@ +suspend 116 +resume 117 +create 38 +delete 39 +modify 106 diff --git a/artifacts/api-meta/dev/operations/93/106.json b/artifacts/api-meta/dev/operations/93/106.json new file mode 100644 index 0000000..2269846 --- /dev/null +++ b/artifacts/api-meta/dev/operations/93/106.json @@ -0,0 +1 @@ +{"queryDurationMs":59,"svcOperation":{"svcOperationId":106,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Rabbitmq/job/modify/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":304,"svcOperationCfsParam":"resourceCPU","label":"Квота(millicore) ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":500,"descr":"Пример: `2000`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":306,"svcOperationCfsParam":"resourceDisk","label":"Квота (gigabyte) диска для контейнера","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Пример: `20`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":305,"svcOperationCfsParam":"resourceMemory","label":"Квота(megabyte) памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":512,"descr":"Пример: `2048`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":307,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `1`","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":308,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделение белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний (белый) IP для доступа к master","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":309,"svcOperationCfsParam":"needExternalAddressSlave","label":"Выделение белого ip для slave ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний (белый) IP для доступа к slave","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":545,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Если выделяеться внешний IP для master-node, то поле необходимо заполнить.","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `internet-no-antiddos-v1`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":546,"svcOperationCfsParam":"ipSpaceNameSlave","label":"Если выделяеться внешний IP для slave-node, то поле необходимо заполнить.","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `internet-no-antiddos-v1`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":60} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/93/116.json b/artifacts/api-meta/dev/operations/93/116.json new file mode 100644 index 0000000..59f08bf --- /dev/null +++ b/artifacts/api-meta/dev/operations/93/116.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":116,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Rabbitmq/job/suspend/job/buildWithParameters","descr":"Остановка сервиса путем применения манифеста с нолевой репликой","man":"Пока не работает из за того что RabbitmqCluster нельзя занулить","cfsParams":[]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/93/117.json b/artifacts/api-meta/dev/operations/93/117.json new file mode 100644 index 0000000..9a8d3fb --- /dev/null +++ b/artifacts/api-meta/dev/operations/93/117.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svcOperation":{"svcOperationId":117,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Rabbitmq/job/resume/job/","descr":null,"man":null,"cfsParams":[]},"runDurationMs":58} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/93/38.json b/artifacts/api-meta/dev/operations/93/38.json new file mode 100644 index 0000000..d1a69aa --- /dev/null +++ b/artifacts/api-meta/dev/operations/93/38.json @@ -0,0 +1 @@ +{"queryDurationMs":61,"svcOperation":{"svcOperationId":38,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Rabbitmq/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":119,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать платформу из списка","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":116,"svcOperationCfsParam":"resourceCPU","label":"Квота(millicore) ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1000","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":500,"descr":"Пример: `2000`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":117,"svcOperationCfsParam":"resourceMemory","label":"Квота(megabyte) памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1124","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":512,"descr":"Пример: `2048`","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":118,"svcOperationCfsParam":"resourceDisk","label":"Размер(gigabyte) диска для базы данных","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"30","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":5,"descr":"Пример: `20`","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":224,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `1`","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":225,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделение белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Флаг, определяющий, нужно ли выделять внешний IP для доступа к master. Пример: `true` или `false`","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":543,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Если выделяеться внешний IP для master-node, то поле необходимо заполнить.","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `internet-no-antiddos-v1`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":62} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/93/39.json b/artifacts/api-meta/dev/operations/93/39.json new file mode 100644 index 0000000..979a7d6 --- /dev/null +++ b/artifacts/api-meta/dev/operations/93/39.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":39,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Rabbitmq/job/delete/job/master/buildWithParameters","descr":"Для удаления нужно подождать 15 мин или зайти в состояние suspend и поправить время на 15 мин назад","man":null,"cfsParams":[]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/94.list b/artifacts/api-meta/dev/operations/94.list new file mode 100644 index 0000000..3a61d0b --- /dev/null +++ b/artifacts/api-meta/dev/operations/94.list @@ -0,0 +1,7 @@ +restart 163 +redeploy 53 +delete 50 +create 49 +modify 55 +suspend 96 +resume 95 diff --git a/artifacts/api-meta/dev/operations/94/163.json b/artifacts/api-meta/dev/operations/94/163.json new file mode 100644 index 0000000..c8c87a4 --- /dev/null +++ b/artifacts/api-meta/dev/operations/94/163.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":163,"operation":"restart","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Lucee/job/restart/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/94/49.json b/artifacts/api-meta/dev/operations/94/49.json new file mode 100644 index 0000000..8505ba7 --- /dev/null +++ b/artifacts/api-meta/dev/operations/94/49.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":49,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Lucee/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":103,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":"provider","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":108,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":106,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"300","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (milicores)","man":"Квота ядра пода (milicores)","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":107,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":"Квота памяти пода (MBytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":139,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":104,"svcOperationCfsParam":"gitPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"https://github.com/xahys/testlucee","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до Git, который будет webroot для сайта","man":"Путь до Git, который будет webroot для сайта","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":105,"svcOperationCfsParam":"jsonEnv","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"{ \"param\": \"value\" }","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":2048,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Здесь вы можете задать переменные среды в формате KEY=VALUE. Они будут доступны внутри вашего приложения.","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":132,"svcOperationCfsParam":"healthPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код","man":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код","sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":263,"svcOperationCfsParam":"appVersion","label":"Версия Lucee","dataType":"string","valueList":["5.4","6.0"],"refSvcId":null,"isRequired":true,"defaultValue":"5.4","defaultCompute":null,"func":null,"regex":"^\\d+(\\.\\d+){1,2}(-[a-zA-Z0-9\\.]+)?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия Lucee","man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/94/50.json b/artifacts/api-meta/dev/operations/94/50.json new file mode 100644 index 0000000..a00f0ce --- /dev/null +++ b/artifacts/api-meta/dev/operations/94/50.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":50,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Lucee/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/94/53.json b/artifacts/api-meta/dev/operations/94/53.json new file mode 100644 index 0000000..1990889 --- /dev/null +++ b/artifacts/api-meta/dev/operations/94/53.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":53,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Lucee/job/redeploy/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":257,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/94/55.json b/artifacts/api-meta/dev/operations/94/55.json new file mode 100644 index 0000000..14e83bc --- /dev/null +++ b/artifacts/api-meta/dev/operations/94/55.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":55,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Lucee/job/modify/job/master/buildWithParameters","descr":"Если CFS оставить пустым, то при запуске джобы берётся параметр из instanceData","man":"Если CFS оставить пустым, то при запуске джобы берётся параметр из instanceData","cfsParams":[{"svcOperationCfsParamId":136,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili) 1000Mili = 1 ядро","man":"Квота ядра пода (Указывается в mili)","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":137,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":138,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":135,"svcOperationCfsParam":"jsonEnv","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":2048,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Массив переменных, будут переданы в env приложения","man":"Массив переменных, будут переданы в env приложения","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":133,"svcOperationCfsParam":"gitPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до Git, который будет webroot для сайта","man":"Путь до Git, который будет webroot для сайта","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":134,"svcOperationCfsParam":"healthPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код.","man":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код.","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":264,"svcOperationCfsParam":"appVersion","label":null,"dataType":"string","valueList":["5.4","6.0"],"refSvcId":null,"isRequired":true,"defaultValue":"5.4","defaultCompute":null,"func":null,"regex":"^\\d+(\\.\\d+){1,2}(-[a-zA-Z0-9\\.]+)?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/94/95.json b/artifacts/api-meta/dev/operations/94/95.json new file mode 100644 index 0000000..5df4216 --- /dev/null +++ b/artifacts/api-meta/dev/operations/94/95.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":95,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Lucee/job/resume/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/94/96.json b/artifacts/api-meta/dev/operations/94/96.json new file mode 100644 index 0000000..5c2a126 --- /dev/null +++ b/artifacts/api-meta/dev/operations/94/96.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":96,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Lucee/job/suspend/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/95.list b/artifacts/api-meta/dev/operations/95.list new file mode 100644 index 0000000..08461bc --- /dev/null +++ b/artifacts/api-meta/dev/operations/95.list @@ -0,0 +1,6 @@ +modify 59 +create 58 +suspend 120 +resume 121 +delete 61 +redeploy 60 diff --git a/artifacts/api-meta/dev/operations/95/120.json b/artifacts/api-meta/dev/operations/95/120.json new file mode 100644 index 0000000..1bd6219 --- /dev/null +++ b/artifacts/api-meta/dev/operations/95/120.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":120,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Node/job/suspend/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/95/121.json b/artifacts/api-meta/dev/operations/95/121.json new file mode 100644 index 0000000..ffeda04 --- /dev/null +++ b/artifacts/api-meta/dev/operations/95/121.json @@ -0,0 +1 @@ +{"queryDurationMs":47,"svcOperation":{"svcOperationId":121,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Node/job/resume/job/","descr":null,"man":null,"cfsParams":[]},"runDurationMs":47} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/95/58.json b/artifacts/api-meta/dev/operations/95/58.json new file mode 100644 index 0000000..9f65610 --- /dev/null +++ b/artifacts/api-meta/dev/operations/95/58.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":58,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nodejs/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":149,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Наименование поддомена, будет добавлено в nodejs.dev.nubes.ru","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":156,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":153,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (milicores). 1000Mili = 1 Ядро","man":"Квота ядра пода (milicores). 1000Mili = 1 Ядро","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":154,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1024","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":"Квота памяти пода (MBytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":155,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":150,"svcOperationCfsParam":"gitPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"https://github.com/xahys/testnode.git","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до Git, который будет webroot для сайта","man":"Путь до Git, который будет webroot для сайта","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":152,"svcOperationCfsParam":"jsonEnv","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Массив переменных, будут переданы в env приложения","man":"Массив переменных, будут переданы в env приложения","sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":151,"svcOperationCfsParam":"healthPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код. Если оставить пустым, healtcheck'а не будет","man":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код. Если оставить пустым, healtcheck'а не будет","sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":270,"svcOperationCfsParam":"appVersion","label":null,"dataType":"string","valueList":["18","20","22","23"],"refSvcId":null,"isRequired":true,"defaultValue":"23","defaultCompute":null,"func":null,"regex":"^(\\d){2}$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия приложения","man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/95/59.json b/artifacts/api-meta/dev/operations/95/59.json new file mode 100644 index 0000000..0948466 --- /dev/null +++ b/artifacts/api-meta/dev/operations/95/59.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":59,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nodejs/job/modify/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":160,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili) 1000Mili = 1 ядро","man":"Квота ядра пода (Указывается в mili) 1000Mili = 1 ядро","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":161,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":162,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":159,"svcOperationCfsParam":"jsonEnv","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":2048,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Массив переменных, будут переданы в env приложения","man":"Массив переменных, будут переданы в env приложения","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":157,"svcOperationCfsParam":"gitPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до Git, который будет webroot для сайта","man":"Путь до Git, который будет webroot для сайта","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":158,"svcOperationCfsParam":"healthPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код.","man":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код.","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":271,"svcOperationCfsParam":"appVersion","label":null,"dataType":"string","valueList":["18","20","22","23"],"refSvcId":null,"isRequired":true,"defaultValue":"23","defaultCompute":null,"func":null,"regex":"^(\\d){2}$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия приложения","man":"Версия приложения","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":58} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/95/60.json b/artifacts/api-meta/dev/operations/95/60.json new file mode 100644 index 0000000..05a6fdc --- /dev/null +++ b/artifacts/api-meta/dev/operations/95/60.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":60,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nodejs/job/redeploy/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":258,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/95/61.json b/artifacts/api-meta/dev/operations/95/61.json new file mode 100644 index 0000000..18fc141 --- /dev/null +++ b/artifacts/api-meta/dev/operations/95/61.json @@ -0,0 +1 @@ +{"queryDurationMs":80,"svcOperation":{"svcOperationId":61,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nodejs/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":80} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/96.list b/artifacts/api-meta/dev/operations/96.list new file mode 100644 index 0000000..8dfea7f --- /dev/null +++ b/artifacts/api-meta/dev/operations/96.list @@ -0,0 +1,6 @@ +suspend 122 +resume 123 +create 62 +delete 63 +redeploy 65 +modify 64 diff --git a/artifacts/api-meta/dev/operations/96/122.json b/artifacts/api-meta/dev/operations/96/122.json new file mode 100644 index 0000000..250dde7 --- /dev/null +++ b/artifacts/api-meta/dev/operations/96/122.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":122,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgadmin/job/suspend/job/","descr":null,"man":null,"cfsParams":[]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/96/123.json b/artifacts/api-meta/dev/operations/96/123.json new file mode 100644 index 0000000..43e44ce --- /dev/null +++ b/artifacts/api-meta/dev/operations/96/123.json @@ -0,0 +1 @@ +{"queryDurationMs":502,"svcOperation":{"svcOperationId":123,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgadmin/job/resume/job/","descr":null,"man":null,"cfsParams":[]},"runDurationMs":502} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/96/62.json b/artifacts/api-meta/dev/operations/96/62.json new file mode 100644 index 0000000..f36d2dd --- /dev/null +++ b/artifacts/api-meta/dev/operations/96/62.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":62,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgadmin/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":164,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":"provider","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":169,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":165,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"200","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (milicores). 1000Mili = 1 Ядро","man":"Квота ядра пода (milicores). 1000Mili = 1 Ядро","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":166,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"256","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":"Квота памяти пода (MBytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":167,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":170,"svcOperationCfsParam":"login","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\\.[a-zA-Z0-9_-]+)$","uniqueScope":null,"maxlength":255,"minlength":3,"maxvalue":null,"minvalue":null,"descr":"Логин для подключения к pgAdmin, в формате email (login@email.net)","man":"Логин для подключения к pgAdmin, в формате email (login@email.net)","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":171,"svcOperationCfsParam":"password","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пароль для подключения к pgAdmin","man":"Пароль для подключения к pgAdmin","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":true}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/96/63.json b/artifacts/api-meta/dev/operations/96/63.json new file mode 100644 index 0000000..ea0af7f --- /dev/null +++ b/artifacts/api-meta/dev/operations/96/63.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":63,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgadmin/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/96/64.json b/artifacts/api-meta/dev/operations/96/64.json new file mode 100644 index 0000000..c68f3f2 --- /dev/null +++ b/artifacts/api-meta/dev/operations/96/64.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":64,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgadmin/job/modify/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":172,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро","man":"Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":173,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":"Квота памяти пода (MBytes)","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":174,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":58} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/96/65.json b/artifacts/api-meta/dev/operations/96/65.json new file mode 100644 index 0000000..3327c8a --- /dev/null +++ b/artifacts/api-meta/dev/operations/96/65.json @@ -0,0 +1 @@ +{"queryDurationMs":89,"svcOperation":{"svcOperationId":65,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgadmin/job/redeploy/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":277,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":89} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/97.list b/artifacts/api-meta/dev/operations/97.list new file mode 100644 index 0000000..ea375fc --- /dev/null +++ b/artifacts/api-meta/dev/operations/97.list @@ -0,0 +1,2 @@ +delete 73 +create 72 diff --git a/artifacts/api-meta/dev/operations/97/72.json b/artifacts/api-meta/dev/operations/97/72.json new file mode 100644 index 0000000..0bfc173 --- /dev/null +++ b/artifacts/api-meta/dev/operations/97/72.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":72,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/NodeRed/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":197,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":"provider","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Наименование поддомена, будет добавлено в k8stemplate.dev.nubes.ru","man":"Наименование поддомена, будет добавлено в k8stemplate.dev.nubes.ru","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":196,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":193,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":194,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":323,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":195,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/97/73.json b/artifacts/api-meta/dev/operations/97/73.json new file mode 100644 index 0000000..33bf16f --- /dev/null +++ b/artifacts/api-meta/dev/operations/97/73.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":73,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/NodeRed/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/98.list b/artifacts/api-meta/dev/operations/98.list new file mode 100644 index 0000000..25314cf --- /dev/null +++ b/artifacts/api-meta/dev/operations/98.list @@ -0,0 +1,6 @@ +resume 130 +suspend 131 +create 77 +modify 81 +redeploy 79 +delete 78 diff --git a/artifacts/api-meta/dev/operations/98/130.json b/artifacts/api-meta/dev/operations/98/130.json new file mode 100644 index 0000000..ccd270c --- /dev/null +++ b/artifacts/api-meta/dev/operations/98/130.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":130,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SimpleHttpContainer/job/resume/job/","descr":null,"man":null,"cfsParams":[]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/98/131.json b/artifacts/api-meta/dev/operations/98/131.json new file mode 100644 index 0000000..764f31a --- /dev/null +++ b/artifacts/api-meta/dev/operations/98/131.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":131,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SimpleHttpContainer/job/suspend/job/","descr":null,"man":null,"cfsParams":[]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/98/77.json b/artifacts/api-meta/dev/operations/98/77.json new file mode 100644 index 0000000..f06f0a0 --- /dev/null +++ b/artifacts/api-meta/dev/operations/98/77.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":77,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SimpleHttpContainer/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":212,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":"provider","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":216,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":213,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"100","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili)","man":"Квота ядра пода (Указывается в mili)","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":214,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"200","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":215,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество реплик приложения. Трафик будет распределяться между подами в режиме Round-Robin","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":217,"svcOperationCfsParam":"registryPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"nexus-sa.tst.nubes.ru/docker-nubes/jolt","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до image, который будет установлен как deployment","man":"Путь до image, который будет установлен как deployment","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":241,"svcOperationCfsParam":"jsonEnv","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"{"param": "value"}","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Массив переменных, будут переданы в env приложения","man":"Массив переменных, будут переданы в env приложения","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/98/78.json b/artifacts/api-meta/dev/operations/98/78.json new file mode 100644 index 0000000..9a6ec67 --- /dev/null +++ b/artifacts/api-meta/dev/operations/98/78.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":78,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SimpleHttpContainer/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/98/79.json b/artifacts/api-meta/dev/operations/98/79.json new file mode 100644 index 0000000..2cd2a8f --- /dev/null +++ b/artifacts/api-meta/dev/operations/98/79.json @@ -0,0 +1 @@ +{"queryDurationMs":60,"svcOperation":{"svcOperationId":79,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SimpleHttpContainer/job/redeploy/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":272,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":60} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/98/81.json b/artifacts/api-meta/dev/operations/98/81.json new file mode 100644 index 0000000..4ab3ca7 --- /dev/null +++ b/artifacts/api-meta/dev/operations/98/81.json @@ -0,0 +1 @@ +{"queryDurationMs":76,"svcOperation":{"svcOperationId":81,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SimpleHttpContainer/job/modify/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":218,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":219,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":220,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":76} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/99.list b/artifacts/api-meta/dev/operations/99.list new file mode 100644 index 0000000..cf965df --- /dev/null +++ b/artifacts/api-meta/dev/operations/99.list @@ -0,0 +1,5 @@ +delete 83 +modify 91 +create 82 +suspend 126 +resume 127 diff --git a/artifacts/api-meta/dev/operations/99/126.json b/artifacts/api-meta/dev/operations/99/126.json new file mode 100644 index 0000000..edf19f4 --- /dev/null +++ b/artifacts/api-meta/dev/operations/99/126.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":126,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Gitea/job/suspend/job/","descr":null,"man":null,"cfsParams":[]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/99/127.json b/artifacts/api-meta/dev/operations/99/127.json new file mode 100644 index 0000000..18fa327 --- /dev/null +++ b/artifacts/api-meta/dev/operations/99/127.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":127,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Gitea/job/resume/job/","descr":null,"man":null,"cfsParams":[]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/99/82.json b/artifacts/api-meta/dev/operations/99/82.json new file mode 100644 index 0000000..0f6e8f2 --- /dev/null +++ b/artifacts/api-meta/dev/operations/99/82.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":82,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Gitea/job/create/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":238,"svcOperationCfsParam":"psqlUid","label":null,"dataType":"uuid","valueList":null,"refSvcId":90,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID Услуги k8sPgsql. Пользователя techGitea, базу данных gitea создаёт автоматически","man":"UUID Услуги k8sPgsql. Пользователя techGitea, базу данных gitea создаёт автоматически","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":237,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":"provider","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":232,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":300,"descr":"Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро","man":"Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":233,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":256,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":234,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":235,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/99/83.json b/artifacts/api-meta/dev/operations/99/83.json new file mode 100644 index 0000000..0e5cb1f --- /dev/null +++ b/artifacts/api-meta/dev/operations/99/83.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":83,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Gitea/job/delete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/dev/operations/99/91.json b/artifacts/api-meta/dev/operations/99/91.json new file mode 100644 index 0000000..3b77e23 --- /dev/null +++ b/artifacts/api-meta/dev/operations/99/91.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":91,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Gitea/job/modify/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":259,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"100","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":500,"descr":"Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":260,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"128","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":256,"descr":"Квота памяти пода (Указывается в Megabytes)","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":261,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":262,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services.json b/artifacts/api-meta/dev/services.json new file mode 100644 index 0000000..f3e2683 --- /dev/null +++ b/artifacts/api-meta/dev/services.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"total":46,"resultSetSize":46,"pageSize":100,"page":1,"orderBy":"","size":46,"results":[{"svcShort":"nifi","orchestratorName":"Nifi","svcId":153,"svc":"Nifi"},{"svcShort":"template","orchestratorName":"Template","svcId":152,"svc":"Темплейт k8s-2-clone"},{"svcShort":"k8sOpenbao","orchestratorName":"Openbao","svcId":151,"svc":"Vault"},{"svcShort":"k8sSthutrvalCluster","orchestratorName":"SthutrvalCluster","svcId":150,"svc":"Kubernetes кластер Штурвал"},{"svcShort":"valoTenant","orchestratorName":"Tenant","svcId":149,"svc":"VALO Cloud"},{"svcShort":"clickhouse","orchestratorName":"ClickHouse","svcId":120,"svc":"ClickHouse"},{"svcShort":"Akhq","orchestratorName":"Akhq","svcId":119,"svc":"Akhq"},{"svcShort":"kafka","orchestratorName":"Kafka","svcId":116,"svc":"ApacheKafka"},{"svcShort":"mariadb","orchestratorName":"Mariadb","svcId":115,"svc":"Mariadb"},{"svcShort":"vcComplex","orchestratorName":"Complex","svcId":113,"svc":"Быстрый старт"},{"svcShort":"tenant","orchestratorName":"Tenant","svcId":112,"svc":"Тенант в Grafana"},{"svcShort":"dnsrecord","orchestratorName":"Records","svcId":111,"svc":"DNS запись"},{"svcShort":"dnszone","orchestratorName":"Zones","svcId":110,"svc":"DNS зона"},{"svcShort":"rec2","orchestratorName":"RecordV2","svcId":109,"svc":"dnsRecordV2"},{"svcShort":"openwhisk","orchestratorName":"OpenWhisk","svcId":100,"svc":"Serverless Openwhisk (openwhisk_tenant)"},{"svcShort":"gitea","orchestratorName":"Gitea","svcId":99,"svc":"Gitea"},{"svcShort":"http","orchestratorName":"SimpleHttpContainer","svcId":98,"svc":"Простой HTTP контейнер"},{"svcShort":"nodered","orchestratorName":"NodeRed","svcId":97,"svc":"NodeRed"},{"svcShort":"pgadmin","orchestratorName":"Pgadmin","svcId":96,"svc":"pgAdmin"},{"svcShort":"nodejs","orchestratorName":"Node","svcId":95,"svc":"NodeJS"},{"svcShort":"lucee","orchestratorName":"Lucee","svcId":94,"svc":"Lucee"},{"svcShort":"rabbitmq","orchestratorName":"Rabbitmq","svcId":93,"svc":"RabbitMQ"},{"svcShort":"mongodb","orchestratorName":"MongoDB","svcId":92,"svc":"MongoDB"},{"svcShort":"redis","orchestratorName":"Redis","svcId":91,"svc":"Redis"},{"svcShort":"postgres","orchestratorName":"Pgsql","svcId":90,"svc":"PostgreSQL"},{"svcShort":"flask","orchestratorName":"Flask","svcId":89,"svc":"Web-сервер с фреймворком Flask"},{"svcShort":"k8sZitiController","orchestratorName":"ZitiController","svcId":88,"svc":"k8sZitiController"},{"svcShort":"harbor","orchestratorName":"Registry","svcId":82,"svc":"Container Registry"},{"svcShort":"superset","orchestratorName":"Superset","svcId":81,"svc":"Apache Superset"},{"svcShort":"nextcloud","orchestratorName":"Nextcloud","svcId":50,"svc":"Nextcloud"},{"svcShort":"vmpostgre","orchestratorName":"VmPostgre","svcId":32,"svc":"vc_vm_postgresql_std"},{"svcShort":"vcVdcGroup","orchestratorName":"VdcGroup","svcId":29,"svc":"Группа датацентров"},{"svcShort":"vc_vm_v3","orchestratorName":"VmV3","svcId":28,"svc":"Виртуальная машина"},{"svcShort":"vc_vm_v2","orchestratorName":"VmV2","svcId":27,"svc":"VM в Cloud Director (vc_vmV2)"},{"svcShort":"vapp","orchestratorName":"Vapp","svcId":26,"svc":"Виртуальный каталог ВМ (vApp)"},{"svcShort":"vcexternalip","orchestratorName":"Ip","svcId":25,"svc":"Публичные IP адреса"},{"svcShort":"vcNat","orchestratorName":"Nat","svcId":24,"svc":"DEPRECATED Правила маршрутизации для VM (vc_nat)"},{"svcShort":"vc_vm","orchestratorName":"Vm","svcId":23,"svc":"VM в Cloud Director (старый формат) (vc_vm)"},{"svcShort":"vc_nsxt","orchestratorName":"Nsxt","svcId":22,"svc":"Сетевой шлюз периметра (Edge)"},{"svcShort":"vc_vdc","orchestratorName":"Vdc","svcId":21,"svc":"Виртуальный датацентр (vDC)"},{"svcShort":"vcOrgSaas","orchestratorName":"OrgSaas","svcId":20,"svc":"Организация [DEPRECATED]"},{"svcShort":"vcOrg","orchestratorName":"Org","svcId":19,"svc":"Организация в Cloud Director"},{"svcShort":"s3bucket","orchestratorName":"Bucket","svcId":13,"svc":"S3 бакет"},{"svcShort":"s3","orchestratorName":"Ceph","svcId":12,"svc":"S3 Object Storage"},{"svcShort":"template","orchestratorName":"Template","svcId":2,"svc":"Темплейт k8s"},{"svcShort":"dummy","orchestratorName":"Service","svcId":1,"svc":"Болванка"}],"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/1.json b/artifacts/api-meta/dev/services/1.json new file mode 100644 index 0000000..ad52586 --- /dev/null +++ b/artifacts/api-meta/dev/services/1.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svc":{"svcId":1,"svc":"Болванка","svcShort":"dummy","code":null,"version":"master","orchestratorName":"Service","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/dummy/job/Service/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":7,"iconSrc":null,"descr":"Болванка для тестов","man":"## Болванка для тестов.

А это просто много букв, чтобы посмотреть, как ведет себя текст при переполнении контейнера.


``` json
{
"iamServiceUrl": "https://auth-api-test.ngcloud.ru/api/v1/user",
"idpResponse": {
"prefix": {
"charset": "",
"status_text": "Request Time-out",
"text": true,
"errordetail": "",
"filecontent": "Connection Timeout",
"responseheader": {},
"header": "",
"statuscode": "408 Request Time-out",
"status_code": 408,
"mimetype": "Unable to determine MIME type of file."
}
}
}
```","operations":[{"svcOperationId":18,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/dummy/job/Service/job/create/job/master/buildWithParameters","descr":"Это описание операции CREATE сервиса Болванка","man":"Это мануал к операции CREATE сервиса Болванка"},{"svcOperationId":240,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/dummy/job/Service/job/redeploy/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":92,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/dummy/job/Service/job/modify/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":71,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/dummy/job/Service/job/delete/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":94,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/dummy/job/Service/job/resume/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":93,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/dummy/job/Service/job/suspend/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/100.json b/artifacts/api-meta/dev/services/100.json new file mode 100644 index 0000000..c652674 --- /dev/null +++ b/artifacts/api-meta/dev/services/100.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svc":{"svcId":100,"svc":"Serverless Openwhisk (openwhisk_tenant)","svcShort":"openwhisk","code":null,"version":null,"orchestratorName":"OpenWhisk","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/tenantOpenwhisk/job/serviceCreate/job/master/buildWithParameters","isProductionReady":false,"resourceRealmTypeId":5,"iconSrc":null,"descr":"Добавление и удаления пользователя (учетной записи, тенанта) для работы с Openwhisk","man":"Добавление и удаления пользователя для работы с Openwhisk","operations":[{"svcOperationId":42,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/tenantOpenwhisk/job/serviceDelete/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":41,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/tenantOpenwhisk/job/serviceCreate/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/109.json b/artifacts/api-meta/dev/services/109.json new file mode 100644 index 0000000..90e416a --- /dev/null +++ b/artifacts/api-meta/dev/services/109.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svc":{"svcId":109,"svc":"dnsRecordV2","svcShort":"rec2","code":null,"version":"master","orchestratorName":"RecordV2","createUrl":null,"isProductionReady":false,"resourceRealmTypeId":4,"iconSrc":null,"descr":null,"man":null,"operations":[]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/110.json b/artifacts/api-meta/dev/services/110.json new file mode 100644 index 0000000..1ae5b8b --- /dev/null +++ b/artifacts/api-meta/dev/services/110.json @@ -0,0 +1 @@ +{"queryDurationMs":47,"svc":{"svcId":110,"svc":"DNS зона","svcShort":"dnszone","code":null,"version":"master","orchestratorName":"Zones","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/powerdns/job/Zones/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":4,"iconSrc":"https://www.svgrepo.com/download/530451/dns.svg","descr":"Хостинг DNS зоны","man":"## ![image](https://img.icons8.com/?size=50&id=41400&format=png) Необходимо делегировать зону у регистратора на Авторитетные DNS (Сервера зон)

ns3.ngcloud.ru
``` bash
185.247.187.83
2a10:aa80:0:5::3
```

ns4.ngcloud.ru
``` bash
81.22.46.43
2a10:aa80:0:6::3
```","operations":[{"svcOperationId":43,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/powerdns/job/Zones/job/create/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":44,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/powerdns/job/Zones/job/delete/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":47} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/111.json b/artifacts/api-meta/dev/services/111.json new file mode 100644 index 0000000..b4d366d --- /dev/null +++ b/artifacts/api-meta/dev/services/111.json @@ -0,0 +1 @@ +{"queryDurationMs":47,"svc":{"svcId":111,"svc":"DNS запись","svcShort":"dnsrecord","code":null,"version":"master","orchestratorName":"Records","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/powerdns/job/Records/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":4,"iconSrc":"https://www.svgrepo.com/download/530451/dns.svg","descr":"DNS запись в созданной зоне","man":"Необходима DNS зона, в которой будет создана DNS запись.
Выберите
* Зону в которой будет создана запись
* Тип записи
* Имя записи
* Значение записи","operations":[{"svcOperationId":46,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/powerdns/job/Records/job/delete/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":45,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/powerdns/job/Records/job/create/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":90,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/powerdns/job/Records/job/modify/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":47} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/112.json b/artifacts/api-meta/dev/services/112.json new file mode 100644 index 0000000..cbef5d4 --- /dev/null +++ b/artifacts/api-meta/dev/services/112.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svc":{"svcId":112,"svc":"Тенант в Grafana","svcShort":"tenant","code":null,"version":"master","orchestratorName":"Tenant","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/grafana/job/Tenant/job/create/job/master/buildWithParameters","isProductionReady":false,"resourceRealmTypeId":6,"iconSrc":null,"descr":"Организация доступов к мониторингу","man":null,"operations":[{"svcOperationId":84,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/grafana/job/Tenant/job/create/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":86,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/grafana/job/Tenant/job/delete/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":87,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/grafana/job/Tenant/job/modify/job/master/buildWithParameters","descr":"Просто удаляет все текущие датасоурсы и ставит их заново
Полезно, когда нужно "ресетнуть" / "добавить"","man":"Просто удаляет все текущие датасоурсы и ставит их заново
Полезно, когда нужно "ресетнуть" / "добавить""}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/113.json b/artifacts/api-meta/dev/services/113.json new file mode 100644 index 0000000..65103eb --- /dev/null +++ b/artifacts/api-meta/dev/services/113.json @@ -0,0 +1 @@ +{"queryDurationMs":64,"svc":{"svcId":113,"svc":"Быстрый старт","svcShort":"vcComplex","code":null,"version":"master","orchestratorName":"Complex","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/vcComplex/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Создание готовой иерархии ресурсов","man":"# Создает окружение для ВМ.

## Создает сервисы:
**Организация**
**Виртуальный датацентр**
**Каталог**
**Сетевой шлюз периметра**

","operations":[{"svcOperationId":107,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/vcComplex/job/create/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":64} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/115.json b/artifacts/api-meta/dev/services/115.json new file mode 100644 index 0000000..1c3ed39 --- /dev/null +++ b/artifacts/api-meta/dev/services/115.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svc":{"svcId":115,"svc":"Mariadb","svcShort":"mariadb","code":"paas.mariadb.0","version":"master","orchestratorName":"Mariadb","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Mariadb/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Управляемая база данных MariaDb","man":"Mariadb кластер. Ресурсная платформа: k8s. Автоматизация: k8s operator.
Автоматическое резервное копирование, ручное восстановление.","operations":[{"svcOperationId":142,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Mariadb/job/modify/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":247,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Mariadb/job/delete_user/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":242,"operation":"create_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Mariadb/job/create_database/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":248,"operation":"delete_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Mariadb/job/delete_database/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":138,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Mariadb/job/create/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":243,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Mariadb/job/create_user/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":139,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Mariadb/job/delete/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":140,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Mariadb/job/suspend/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":141,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Mariadb/job/resume/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/116.json b/artifacts/api-meta/dev/services/116.json new file mode 100644 index 0000000..61b91a2 --- /dev/null +++ b/artifacts/api-meta/dev/services/116.json @@ -0,0 +1 @@ +{"queryDurationMs":61,"svc":{"svcId":116,"svc":"ApacheKafka","svcShort":"kafka","code":null,"version":"master","orchestratorName":"Kafka","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/create/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":"https://www.svgrepo.com/show/329947/apachekafka.svg","descr":"Сервис создания кластера Apache Kafka","man":"# Инструкция по развертыванию Организация в Cloud Director через платформу

## 1. Общая информация

Сервис **Организация в Cloud Director** предназначен для управления изолированными организационными единицами (тенантами) внутри инфраструктуры Cloud Director. Он обеспечивает создание, модификацию и администрирование организаций, предоставление им облачных ресурсов, а также контроль уровня доступа. Сервис используется для организации рабочих окружений потребителей, управления жизненным циклом организаций и их сетевой инфраструктурой.

### Доступные операции

**create** — Создание новой организации с заданными характеристиками и типом доступа.
**delete** — Удаление организации после перехода в состояние suspend; приводит к удалению всех связанных сущностей.
**modify** — Изменение параметров внутри организации (на текущий момент поддерживается изменение ipSpaces).
**suspend** — Заморозка организации, ограничение возможности изменения и добавления сущностей.
**resume** — Разморозка организации, восстановление функций управления.

---

## 2. Параметры развертывания

Параметры входных данных операции **create**:

### Платформа для развертывания
Описание: платформа, на которой будет создана организация.
Пример значения: `ngcloud.ru`.

### Тип организации
Описание: тип создаваемой организации.
Варианты:
- `iaas` — организация с прямым доступом к облаку и авторизацией через Keycloak.
- `saas` — организация под управлением Nubes, без прямого доступа к облаку.

---

## 3. Рекомендованные характеристики

### Тестовое окружение
- Тип организации: `iaas` для обеспечения полного доступа к облачным ресурсам и самостоятельного управления.

### Промышленное окружение
- Тип организации: `saas` (упрощённая модель использования).

---

## 4. Выходные параметры

Услуга предоставляет следующие выходные параметры (формируются в процессе операций):

### Идентификатор организации
Уникальный идентификатор созданной организации. Используется для всех дальнейших API-операций.

### Статус организации
Отражает текущее состояние: active, suspended, modifying, deleting.

### Параметры сети
Выходные данные при наличии ipSpaces: список выделенных внешних IP, имя ip_space, количество IP.

---

## 5. Дополнительная информация

- Для конфигурации внешних IP внутри организации необходимо предварительно создать:
-- хотя бы один **Виртуальный датацентр (VDC)**;
-- хотя бы один **Сетевой шлюз периметра (Edge Gateway)**, привязанный к этой организации.
- Удаление организации возможно только через 14 дней после перевода в состояние suspend.
- Удаление организации приводит к удалению всех связанных сущностей: VDC, Edge Gateway, пулов IP, сетей, ВМок и иных объектов.
- Операция suspend не останавливает виртуальные машины, но блокирует любые изменения инфраструктуры внутри организации.
- Для iaas-организаций доступ осуществляется через Keycloak.

","operations":[{"svcOperationId":165,"operation":"create_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/create_topic/job/","descr":null,"man":"# Инструкция по управлению топиками Apache Kafka через платформу

## 1. Общая информация

---

Топик — это основная сущность в Apache Kafka, предназначенная для приёма сообщений от продюсеров и передачи их консюмерам.
Платформа позволяет создавать, удалять и изменять параметры топиков без прямого доступа к брокерам, обеспечивая удобное управление через интерфейс или API.

---

## Доступные операции

- **create_topic** — Создание топика
- **modify_topic** — Модификация топика
- **delete_topic** — Удаление топика

---

## 2. Параметры создания топика

Ниже перечислены параметры, которые необходимо указать при создании нового топика:

* **Имя топика**
Название топика.
Должно быть уникальным в пределах кластера.
Пример: `orders-events`.

* **Партиции**
Количество партиций топика.
Рекомендуется выбирать с учётом уровня параллелизма потребителей и предполагаемой нагрузки.
Пример: `6`. Здесь важно рассказать о том как происходит расчет оптимального количества
Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.

* **Реплики**
Количество реплик для каждой партиции.
Обычно равно количеству доступных брокеров или меньше.
Пример: `3`.


---

## 4. Параметры модификации топика

Для уже существующих топиков можно изменять параметры. Все параметры являются опциональными:

* **Имя топика**
Название топика.
Пример: `orders-events`.

* **Партиции**
Новое количество партиций.
Пример: `12`.

* **Реплики**
Новое количество реплик.
Пример: `2`.

---

## 5. Рекомендации

* Планируйте количество партиций с запасом — уменьшение их числа невозможно.
* Количество реплик должно соответствовать требуемому уровню отказоустойчивости, но не превышать количество брокеров.
* Изменение параметров топика в рабочем окружении может временно влиять на производительность. Рекомендуется проводить крупные изменения в периоды минимальной нагрузки.

---"},{"svcOperationId":160,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/suspend/job/","descr":null,"man":null},{"svcOperationId":166,"operation":"modify_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/modify_topic/job/","descr":null,"man":"# Инструкция по управлению топиками Apache Kafka через платформу

## 1. Общая информация

---

Топик — это основная сущность в Apache Kafka, предназначенная для приёма сообщений от продюсеров и передачи их консюмерам.
Платформа позволяет создавать, удалять и изменять параметры топиков без прямого доступа к брокерам, обеспечивая удобное управление через интерфейс или API.

---

## Доступные операции

- **create_topic** — Создание топика
- **modify_topic** — Модификация топика
- **delete_topic** — Удаление топика

---

## 2. Параметры создания топика

Ниже перечислены параметры, которые необходимо указать при создании нового топика:

* **Имя топика**
Название топика.
Должно быть уникальным в пределах кластера.
Пример: `orders-events`.

* **Партиции**
Количество партиций топика.
Рекомендуется выбирать с учётом уровня параллелизма потребителей и предполагаемой нагрузки.
Пример: `6`. Здесь важно рассказать о том как происходит расчет оптимального количества
Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.

* **Реплики**
Количество реплик для каждой партиции.
Обычно равно количеству доступных брокеров или меньше.
Пример: `3`.


---

## 4. Параметры модификации топика

Для уже существующих топиков можно изменять параметры. Все параметры являются опциональными:

* **Имя топика**
Название топика.
Пример: `orders-events`.

* **Партиции**
Новое количество партиций.
Пример: `12`.

* **Реплики**
Новое количество реплик.
Пример: `2`.

---

## 5. Рекомендации

* Планируйте количество партиций с запасом — уменьшение их числа невозможно.
* Количество реплик должно соответствовать требуемому уровню отказоустойчивости, но не превышать количество брокеров.
* Изменение параметров топика в рабочем окружении может временно влиять на производительность. Рекомендуется проводить крупные изменения в периоды минимальной нагрузки.

---"},{"svcOperationId":161,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/resume/job/","descr":null,"man":null},{"svcOperationId":167,"operation":"delete_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/delete_topic/job/","descr":null,"man":null},{"svcOperationId":148,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/create/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":162,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/modify/job/","descr":null,"man":null},{"svcOperationId":168,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/create_user/job/","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.

---

## 1. Общая информация

Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.
Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.
Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.

---

## Доступные операции

- **create_user** — Создание пользователя
- **modify_user** — Модификация пользователя
- **delete_user** — Удаление пользователя

---

## 2. Параметры создания пользователя

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

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 3. Параметры модификации пользователя

Ниже перечислены параметры, которые необходимо указать при модификации пользователя:

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 4. Параметры удалении пользователя

Ниже перечислены параметры, которые необходимо указать при удалении пользователя:

* **Имя пользователя**
Имя удаляемого пользователя.
Пример: `username-admin`

## 5. Выходные параметры

После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:

* **ca.crt**
Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.
Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **ca.p12**
PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.p12
```

* **ca.password**
Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

* **user.crt**
Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.
Используется совместно с приватным ключом `user.key` для аутентификации.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **user.key**
Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.key
```

* **user.p12**
PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo "<содержание поля>" | base64 -d > <название>.p12
```

* **user.password**
Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

Эти параметры используются для настройки TLS-подключения.

---

## 6. Пример конфигурации клиента внутри кластера

Пример пода:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: kafka-4
spec:
volumes:
- name: work
emptyDir: {}
containers:
- name: kcat
image: quay.io/strimzi/kafka:latest-kafka-4.0.0
command: ["sleep", "5600"]
volumeMounts:
- name: work
mountPath: /work
restartPolicy: Never
```

Создаём под и сохраняем сертификаты:

```bash
kubectl cp user.p12 kafka-4:/work/
kubectl cp ca.p12 kafka-4:/work/
```

Создаём файлы конфигурации:

```bash
cat > /work/user-read.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

```bash
cat > /work/user-write.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user-write.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

Листинг доступных топиков:

```bash
/opt/kafka/bin/kafka-topics.sh \\
--bootstrap-server kafkak8s-bootstrap-external:9093 \\
--command-config /work/user-read.properties \\
--list
```

Запись сообщений:

```bash
/opt/kafka/bin/kafka-console-producer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--producer.config /work/user-write.properties
```

Чтение сообщений:

```bash
/opt/kafka/bin/kafka-console-consumer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--from-beginning \\
--group <group> \\
--consumer.config /work/user-read.properties \\
--max-messages 50
```

---

## 7. Пример внешнего подключения с использованием **kcat**

**Листинг топиков**

```bash
kcat -b <externalConnect.bootstrap.fqdn>:9093 \\
-L \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Запись сообщения**

```bash
echo "hello from kcat" | kcat -P \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-write.crt \\
-X ssl.key.location=./user-write.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Чтение сообщений**

```bash
kcat -C \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-o beginning \\
-q \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

---


## 9. Рекомендации

* Минимизируйте набор разрешённых операций для повышения безопасности.
* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.
* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.
* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.

---"},{"svcOperationId":149,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/delete/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":169,"operation":"modify_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/modify_user/job/","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.

---

## 1. Общая информация

Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.
Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.
Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.

---

## Доступные операции

- **create_user** — Создание пользователя
- **modify_user** — Модификация пользователя
- **delete_user** — Удаление пользователя

---

## 2. Параметры создания пользователя

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

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 3. Параметры модификации пользователя

Ниже перечислены параметры, которые необходимо указать при модификации пользователя:

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 4. Параметры удалении пользователя

Ниже перечислены параметры, которые необходимо указать при удалении пользователя:

* **Имя пользователя**
Имя удаляемого пользователя.
Пример: `username-admin`

## 5. Выходные параметры

После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:

* **ca.crt**
Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.
Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **ca.p12**
PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.p12
```

* **ca.password**
Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

* **user.crt**
Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.
Используется совместно с приватным ключом `user.key` для аутентификации.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **user.key**
Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.key
```

* **user.p12**
PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo "<содержание поля>" | base64 -d > <название>.p12
```

* **user.password**
Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

Эти параметры используются для настройки TLS-подключения.

---

## 6. Пример конфигурации клиента внутри кластера

Пример пода:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: kafka-4
spec:
volumes:
- name: work
emptyDir: {}
containers:
- name: kcat
image: quay.io/strimzi/kafka:latest-kafka-4.0.0
command: ["sleep", "5600"]
volumeMounts:
- name: work
mountPath: /work
restartPolicy: Never
```

Создаём под и сохраняем сертификаты:

```bash
kubectl cp user.p12 kafka-4:/work/
kubectl cp ca.p12 kafka-4:/work/
```

Создаём файлы конфигурации:

```bash
cat > /work/user-read.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

```bash
cat > /work/user-write.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user-write.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

Листинг доступных топиков:

```bash
/opt/kafka/bin/kafka-topics.sh \\
--bootstrap-server kafkak8s-bootstrap-external:9093 \\
--command-config /work/user-read.properties \\
--list
```

Запись сообщений:

```bash
/opt/kafka/bin/kafka-console-producer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--producer.config /work/user-write.properties
```

Чтение сообщений:

```bash
/opt/kafka/bin/kafka-console-consumer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--from-beginning \\
--group <group> \\
--consumer.config /work/user-read.properties \\
--max-messages 50
```

---

## 7. Пример внешнего подключения с использованием **kcat**

**Листинг топиков**

```bash
kcat -b <externalConnect.bootstrap.fqdn>:9093 \\
-L \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Запись сообщения**

```bash
echo "hello from kcat" | kcat -P \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-write.crt \\
-X ssl.key.location=./user-write.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Чтение сообщений**

```bash
kcat -C \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-o beginning \\
-q \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

---


## 9. Рекомендации

* Минимизируйте набор разрешённых операций для повышения безопасности.
* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.
* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.
* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.

---"},{"svcOperationId":170,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/delete_user/job/","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.

---

## 1. Общая информация

Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.
Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.
Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.

---

## Доступные операции

- **create_user** — Создание пользователя
- **modify_user** — Модификация пользователя
- **delete_user** — Удаление пользователя

---

## 2. Параметры создания пользователя

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

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 3. Параметры модификации пользователя

Ниже перечислены параметры, которые необходимо указать при модификации пользователя:

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 4. Параметры удалении пользователя

Ниже перечислены параметры, которые необходимо указать при удалении пользователя:

* **Имя пользователя**
Имя удаляемого пользователя.
Пример: `username-admin`

## 5. Выходные параметры

После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:

* **ca.crt**
Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.
Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **ca.p12**
PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.p12
```

* **ca.password**
Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

* **user.crt**
Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.
Используется совместно с приватным ключом `user.key` для аутентификации.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **user.key**
Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.key
```

* **user.p12**
PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo "<содержание поля>" | base64 -d > <название>.p12
```

* **user.password**
Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

Эти параметры используются для настройки TLS-подключения.

---

## 6. Пример конфигурации клиента внутри кластера

Пример пода:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: kafka-4
spec:
volumes:
- name: work
emptyDir: {}
containers:
- name: kcat
image: quay.io/strimzi/kafka:latest-kafka-4.0.0
command: ["sleep", "5600"]
volumeMounts:
- name: work
mountPath: /work
restartPolicy: Never
```

Создаём под и сохраняем сертификаты:

```bash
kubectl cp user.p12 kafka-4:/work/
kubectl cp ca.p12 kafka-4:/work/
```

Создаём файлы конфигурации:

```bash
cat > /work/user-read.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

```bash
cat > /work/user-write.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user-write.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

Листинг доступных топиков:

```bash
/opt/kafka/bin/kafka-topics.sh \\
--bootstrap-server kafkak8s-bootstrap-external:9093 \\
--command-config /work/user-read.properties \\
--list
```

Запись сообщений:

```bash
/opt/kafka/bin/kafka-console-producer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--producer.config /work/user-write.properties
```

Чтение сообщений:

```bash
/opt/kafka/bin/kafka-console-consumer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--from-beginning \\
--group <group> \\
--consumer.config /work/user-read.properties \\
--max-messages 50
```

---

## 7. Пример внешнего подключения с использованием **kcat**

**Листинг топиков**

```bash
kcat -b <externalConnect.bootstrap.fqdn>:9093 \\
-L \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Запись сообщения**

```bash
echo "hello from kcat" | kcat -P \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-write.crt \\
-X ssl.key.location=./user-write.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Чтение сообщений**

```bash
kcat -C \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-o beginning \\
-q \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

---


## 9. Рекомендации

* Минимизируйте набор разрешённых операций для повышения безопасности.
* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.
* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.
* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.

---"}]},"runDurationMs":61} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/119.json b/artifacts/api-meta/dev/services/119.json new file mode 100644 index 0000000..17397b2 --- /dev/null +++ b/artifacts/api-meta/dev/services/119.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svc":{"svcId":119,"svc":"Akhq","svcShort":"Akhq","code":null,"version":"master","orchestratorName":"Akhq","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Akhq/job/create/job/","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Web интерфейс Akhq для работы с Apache Kafka","man":"# Инструкция по развертыванию Apache Kafka через платформу

---
## 1. Общая информация
AKHQ — это веб-интерфейс для работы с кластерами Apache Kafka.
Позволяет просматривать топики, consumer group'ы, сообщения, ACL, схему безопасности, состояние брокеров и метаданные.
Поддерживает работу с несколькими кластерами Kafka одновременно, включая внутренние и внешние (TLS) подключения.

## Доступные операции
- **create** — Создание ресурса AKHQ
- **suspend** — Остановка ресурса
- **resume** — Возобновление работы ресурса
- **modify** — Модификация настроек
- **delete** — Удаление ресурса

---
## 2. Параметры развертывания кластера
Ниже перечислены параметры, которые необходимо указать при создании ресурса Kafka:

* **Кластер Kafka к которому нужно настроить подключение**
Для использования AKHQ необходимо предварительно развернуть сервис Kafka. Пример: `kafka-external`.

* **Платформа для развертывания:**
Платформа для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.

* **Количество узлов в сети:**
Количество узлов для работы Akhq. Пример `2`

* **Квота (megabyte) памяти пода:**
Квота памяти пода в мегабайтах. Пример: `512`

* **Квота (millicore ) ядра пода:**
Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `500`

* **Имя домена:**
Dns Имя по которому будет происходить обращение к сервису. Указать необходимо уникальное имя до . ( то есть если необходимо получить dns ui) Пример: `kafka-external`

---
## 4. Выходные параметры
После успешного развертывания ресурса Kafka платформа возвращает ряд параметров.
Ключевым из них является:

**connectionUrl**
Это полное доменное имя (FQDN), по которому будет доступен интерфейс AKHQ. После развёртывания подождите несколько минут — UI станет доступен по HTTPS, как только все сервисы полностью запустятся.

**Учетные данные**
Здесь представлены поля для ввода логина и пароля, с помощью которых вы сможете авторизоваться в сервисе.

---
## 5. Дополнительная информация
Учётные записи, созданные для работы с AKHQ, предоставляют доступ только для просмотра данных. Для управления Kafka, пожалуйста, используйте возможности личного кабинета.
---","operations":[{"svcOperationId":177,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Akhq/job/suspend/job/","descr":null,"man":null},{"svcOperationId":178,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Akhq/job/resume/job/","descr":null,"man":null},{"svcOperationId":180,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Akhq/job/modify/job/","descr":null,"man":null},{"svcOperationId":175,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Akhq/job/create/job/","descr":null,"man":null},{"svcOperationId":176,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Akhq/job/delete/job/","descr":null,"man":null}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/12.json b/artifacts/api-meta/dev/services/12.json new file mode 100644 index 0000000..bb195db --- /dev/null +++ b/artifacts/api-meta/dev/services/12.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svc":{"svcId":12,"svc":"S3 Object Storage","svcShort":"s3","code":"paas.s3.ceph","version":"master","orchestratorName":"Ceph","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/s3/job/Ceph/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":1,"iconSrc":"https://upload.wikimedia.org/wikipedia/commons/3/32/AWS_Simple_Icons_Storage_Amazon_S3.svg","descr":"Масштабируемое хранилище данных","man":"Руководство доступно по ссылке:
https://docs.s3.msk-1.ngcloud.ru/s3/s3.description.html","operations":[{"svcOperationId":1,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/s3/job/Ceph/job/create/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":5,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/s3/job/Ceph/job/delete/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":3,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/s3/job/Ceph/job/resume/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":2,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/s3/job/Ceph/job/suspend/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":6,"operation":"create_sub_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/s3/job/Ceph/job/create_sub_user/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":7,"operation":"delete_sub_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/s3/job/Ceph/job/delete_sub_user/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":4,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/s3/job/Ceph/job/modify/job/master/buildWithParameters","descr":"При первичном вызове операции услуга Trial прекращает действие","man":"При первичном вызове операции услуга Trial прекращает действие"}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/120.json b/artifacts/api-meta/dev/services/120.json new file mode 100644 index 0000000..6938fae --- /dev/null +++ b/artifacts/api-meta/dev/services/120.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svc":{"svcId":120,"svc":"ClickHouse","svcShort":"clickhouse","code":null,"version":"master","orchestratorName":"ClickHouse","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/ClickHouse/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Управляемая база данных ClickHouse","man":"# Инструкция по управлению кластерами и пользователями ClickHouse

---

## Общая информация

ClickHouse — это колоночная система управления базами данных, предназначенная для обработки аналитических запросов в реальном времени. Платформа позволяет создавать, удалять, приостанавливать и возобновлять кластеры ClickHouse, а также управлять базами данных и пользователями.

Кластер создаётся через оператор Altinity (`https://github.com/Altinity/clickhouse-operator`) в ресурсной платформе типа `k8s`

Кластеры могут создаваться шардированными с произвольным количеством реплик. Для обеспечения отказоустойчивости и координации обязательно включение параметра `Создать ClickHouse-Keeper`.

Кластера создаются с обязательным бекапом. Для этого необходимо предварительно создать услугу `S3 Object Storage`.
---

## Доступные операции

* **create** — Создание кластера
* **delete** — Удаление кластера
* **suspend** — Приостановка работы кластера
* **resume** — Возобновление работы кластера
* **create_database** — Создание базы данных
* **delete_database** — Удаление базы данных
* **create_user** — Создание пользователя и настройка прав доступа к базе данных
* **delete_user** — Удаление пользователя

## Процесс создания и первого подключения

1. Выполнить операцию `create` - будет создан кластер
2. Выполнить операцию `create_database` - будет создана база данных
3. Выполнить операцию `create_user` - будет создан пользователь (выбрать доступ подключения к БД, созданной в п.2)

## Примеры подключения

### Подключение через HTTP-интерфейс

```bash
# Проверка доступности кластера
curl "http://<username>:<password>@<host>:8123/" -d "SELECT 1"

# Выполнение запроса
curl "http://<username>:<password>@<host>:8123/" -d "SHOW DATABASES"
```

## Простые кейсы
*Создать БД и обычной таблицы*
```clickhouse
CREATE TABLE database.table
(
id UInt64,
value String
)
ENGINE = MergeTree()
ORDER BY id;

INSERT INTO database.table SELECT number, toString(number) FROM numbers(10000000);

SELECT count() FROM database.table;
```
Базы и таблицы не реплицируются без специального ключа (`ON CLUSTER 'clickhousek8s'`)
В случае создания в стиле, описанным выше, необходимо будет выполнять действия на всех шардах/репликах


*Создание БД и шардированной таблицы*
```clickhouse
CREATE TABLE database.localUsers
(
id UInt64,
value String
)
ENGINE = MergeTree()
ORDER BY id;

CREATE TABLE database.shardedTable
AS localUsers
ENGINE = Distributed('clickhousek8s', 'database', 'localUsers', id);

INSERT INTO shardedTable SELECT number, toString(number) FROM numbers(10000000);

SELECT count() FROM shardedTable;
```
Важный момент - в данном примере таблицы придётся также выполнять на всех нодах ClickHouse

*Создание реплицируемой и шардированной таблицы*
```clickhouse
CREATE TABLE IF NOT EXISTS database.localUsers ON cluster 'clickhousek8s'
(
user_id UInt64,
name String,
email String
)
ENGINE = ReplicatedMergeTree(
'/clickhouse/tables/{shard}/localUsers',
'{replica}'
)
ORDER BY user_id;

CREATE TABLE IF NOT EXISTS database.users ON cluster 'clickhousek8s'
AS database.localUsers
ENGINE = Distributed('clickhousek8s', 'database', 'localUsers', rand());

INSERT INTO database.users VALUES (1, 'Alice', 'alice@example.com');
INSERT INTO database.users VALUES (2, 'Bob', 'bob@example.com');
INSERT INTO database.users VALUES (3, 'Charlie', 'charlie@example.com');
INSERT INTO database.users VALUES (4, 'David', 'david@example.com');
INSERT INTO database.users VALUES (5, 'Gosha', 'gosha@example.com');
INSERT INTO database.users VALUES (6, 'Eve', 'eve@example.com');
INSERT INTO database.users VALUES (7, 'Frank', 'frank@example.com');
INSERT INTO database.users VALUES (8, 'Grace', 'grace@example.com');
INSERT INTO database.users VALUES (9, 'Hannah', 'hannah@example.com');
INSERT INTO database.users VALUES (10, 'Ivan', 'ivan@example.com');

SELECT * FROM database.localUsers;
SELECT * FROM database.users;

SELECT COUNT(*) AS total_users FROM database.users;
SELECT COUNT(*) AS total_users_local FROM database.localUsers;
```","operations":[{"svcOperationId":189,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/ClickHouse/job/modify/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":183,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/ClickHouse/job/resume/job/master/buildWithParameters","descr":"Восстанавливает все поды и приводит кластер в работоспособный вид","man":null},{"svcOperationId":185,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/ClickHouse/job/create_user/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":186,"operation":"create_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/ClickHouse/job/create_database/job/master/buildWithParameters","descr":null,"man":"База данных создаётся на всех репликах кластера ClickHouse"},{"svcOperationId":187,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/ClickHouse/job/delete_user/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":188,"operation":"delete_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/ClickHouse/job/delete_database/job/master/buildWithParameters","descr":null,"man":"Необратимое действие!!!
Трижды подумай, заблокируй телефон тимлида и не выполняй это действие"},{"svcOperationId":181,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/ClickHouse/job/create/job/master/buildWithParameters","descr":null,"man":"Операция создания кластера ClickHouse

Для подключения к кластеру также необходимо создать базу данных через операцию `create_database` и создание пользователя через операцию `create_user`"},{"svcOperationId":182,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/ClickHouse/job/suspend/job/master/buildWithParameters","descr":null,"man":"Операция приводит к удалению всех подов
Persistent Volume остаются нетронутыми"},{"svcOperationId":184,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/ClickHouse/job/delete/job/master/buildWithParameters","descr":null,"man":"Удаление возможно только после остановки сервиса через операцию `suspend`
После выполнения операции необходимо выждать определенное кол-во времени"}]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/13.json b/artifacts/api-meta/dev/services/13.json new file mode 100644 index 0000000..a72e6aa --- /dev/null +++ b/artifacts/api-meta/dev/services/13.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svc":{"svcId":13,"svc":"S3 бакет","svcShort":"s3bucket","code":null,"version":"master","orchestratorName":"Bucket","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/s3/job/Bucket/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":1,"iconSrc":"https://upload.wikimedia.org/wikipedia/commons/3/32/AWS_Simple_Icons_Storage_Amazon_S3.svg","descr":"Бакет в сервисе S3","man":null,"operations":[{"svcOperationId":51,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/s3/job/Bucket/job/create/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":52,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/s3/job/Bucket/job/delete/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/149.json b/artifacts/api-meta/dev/services/149.json new file mode 100644 index 0000000..ebd57b4 --- /dev/null +++ b/artifacts/api-meta/dev/services/149.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svc":{"svcId":149,"svc":"VALO Cloud","svcShort":"valoTenant","code":null,"version":"master","orchestratorName":"Tenant","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/valo/job/Tenant/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":8,"iconSrc":null,"descr":"Корпоративная система обмена и синхронизации файлов","man":"# Инструкция по развертыванию Тенант Valo через платформу

## 1. Общая информация
Тенант Valo — логический изолированный экземпляр сервиса VALO Cloud, предоставляющий защищённое облачное хранилище, синхронизацию данных и доступ к документам с различных устройств. При создании тенант автоматически разворачивается в тестовом режиме сроком на 2 месяца. Перевод в промышленную эксплуатацию выполняется отдельной операцией.

### Доступные операции

* **create** — создание нового тенанта в тестовом режиме сроком на 2 месяца.
* **modify** — изменение настроек тенанта, включая перевод из ТЕСТ в ПРОД.
* **suspend** — выключение (приостановка работы) тенанта.
* **resume** — включение ранее приостановленного тенанта.
* **delete** — удаление тенанта; доступно только после выполнения операции suspend.

---

## 2. Параметры развертывания

Параметры входных данных операции **create**:

### Платформа для развертывания
Описание: платформа, на которой будет создан тенант.
Пример значения: `valo.ngcloud.ru`.

### DNS-Префикс
Описание: Будет добавлено в зону valo.ngcloud.ru
Пример значения: `mysimpledomain`.

### Параметры хранилища
Описание: Сколько места будет выделено под использование в тенанте. Данные хранятся в S3. Размер указывается в Gigabytes
Пример значения: `10`.

### Настройки тенанта
Описание: Ряд конфигурации Valo-тенанта, такие как настройки пользователя и доступного функционала
Пример значения: `опционально в рамках настройки`.

---

## 3. Рекомендованные характеристики

### Тестовое окружение
Достаточно развернуть тенант в ТЕСТ. Срок предоставляется в 2 месяца. По истечению срока тенант автоматически переводится в `suspend` на стороне ресурсной платформы

### Промышленное окружение
Для разблокировки используйте операцию `modify`

---

## 4. Выходные параметры

Услуга предоставляет следующие выходные параметры (формируются в процессе операций):

### Статус тенанта
Отражает текущее состояние и параметры.

---

## 5. Дополнительная информация
Тенант всегда создаётся в режиме ТЕСТ и не может быть сразу переведён в ПРОД без операции modify.
Удаление тенанта возможно только после его выключения с помощью операции suspend.
Срок тестового режима составляет 2 месяца с момента создания.
Операции suspend и resume используются для временного управления доступностью сервиса без потери конфигурации.
","operations":[{"svcOperationId":202,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/valo/job/Tenant/job/create/job/master/buildWithParameters","descr":"При создании тенант предоставляется всегда в ТЕСТ (2 месяца с момента создания)
Для продления и переведения в ПРОД, воспользуйтесь в дальнейшем операцией modify","man":null},{"svcOperationId":206,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/valo/job/Tenant/job/delete/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":203,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/valo/job/Tenant/job/modify/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":204,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/valo/job/Tenant/job/suspend/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":205,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/valo/job/Tenant/job/resume/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/150.json b/artifacts/api-meta/dev/services/150.json new file mode 100644 index 0000000..7312d8f --- /dev/null +++ b/artifacts/api-meta/dev/services/150.json @@ -0,0 +1 @@ +{"queryDurationMs":64,"svc":{"svcId":150,"svc":"Kubernetes кластер Штурвал","svcShort":"k8sSthutrvalCluster","code":"paas.k8s.stw","version":"master","orchestratorName":"SthutrvalCluster","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SthutrvalCluster/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Платформа управления K8s
","man":"Перед разворачиванием убедиться, что в облаке есть 2 свободных невыделенных IP в пуле","operations":[{"svcOperationId":110,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SthutrvalCluster/job/modify/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":179,"operation":"update_secrets","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SthutrvalCluster/job/update_secrets/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":253,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SthutrvalCluster/job/reconcile/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":173,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SthutrvalCluster/job/suspend/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":109,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SthutrvalCluster/job/delete/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":174,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SthutrvalCluster/job/resume/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":108,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SthutrvalCluster/job/create/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":64} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/151.json b/artifacts/api-meta/dev/services/151.json new file mode 100644 index 0000000..6af23f7 --- /dev/null +++ b/artifacts/api-meta/dev/services/151.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svc":{"svcId":151,"svc":"Vault","svcShort":"k8sOpenbao","code":null,"version":"master","orchestratorName":"Openbao","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Хранилище секретов","man":"# Инструкция по развертыванию Хранилища секретов через платформу

## 1. Общая информация
Хранилище секретов — сервис централизованного и защищённого хранения чувствительных данных (секретов, ключей, конфигураций). Предназначен для использования приложениями и сервисами в Kubernetes с управлением доступом на основе ролей.
В качестве приложения используется открытый проект OpenBao с поддержкой кластерного режима RAFT.

### Доступные операции
**create** — Создание хранилища секретов и инициализация кластера.
**delete** — Удаление хранилища секретов с полной очисткой всех связанных сущностей.
**modify** — Изменение параметров развернутого хранилища секретов.
**suspend** — Приостановка работы кластера без удаления Persistent Volume.
**resume** — Возобновление работы кластера с автоматическим unseal всех нод.
**restart** — Поочередный перезапуск нод с последующим подключением в кластер.
**create_kv** — Создание Key/Value хранилища версии V2.
**delete_kv** — Удаление Key/Value хранилища со всеми содержащимися секретами.
**create_secrets** — Создание секрета внутри Key/Value хранилища.
**delete_secrets** — Удаление секрета из Key/Value хранилища.
**update_secrets** — Обновление значения секрета.
**recovery_secrets** — Откат секрета к указанной версии.
**create_role** — Создание роли для управления Key/Value хранилищем или секретами.
**update_role** — Обновление параметров роли.
**delete_role** — Удаление роли доступа.

---

## 2. Параметры развертывания

Параметры входных данных операции **create**:

### Платформа для развертывания
Описание: Кластер Kubernetes, в котором будет развернуто приложение.
Формат значения: имя Kubernetes-кластера.

### Имя домена
Описание: Доменное имя сервиса. При указании полного FQDN выполняется проверка DNS A-записи или добавляется А-запись в техническую зону.
Формат значения: secrets.domain.com / mysecretdomain.

### Кол-во реплик
Описание: Количество узлов в кластере.
Формат значения: целое число.

### Квота ядра пода
Описание: Лимит CPU для одного узла. Указывается в milicores (1000 milicores = 1 CPU).
Формат значения: целое число.

### Квота памяти пода
Описание: Лимит оперативной памяти для одного узла. Указывается в megabytes.
Формат значения: целое число.

### Размер диска под хранение секретов
Описание: Объем диска для хранения данных. Фактический объем равен значению, умноженному на количество реплик. Указывается в Gigabytes
Формат значения: целое число.

### Версия OpenBao
Описание: Версия OpenBao для развертывания сервиса.
Формат значения: выбор из предоставленного списка версий.

---

## 3. Рекомендованные характеристики

### Тестовое окружение
Кол-во реплик: 2.
Квота ядра пода: 200.
Квота памяти пода: 256.
Размер диска под хранение секретов: 1.
Версия OpenBao: актуальная стабильная версия.

### Промышленное окружение
Кол-во реплик: от 3.
Квота ядра пода: от 1000.
Квота памяти пода: от 1024.
Размер диска под хранение секретов: от 10.
Версия OpenBao: актуальная стабильная версия.

---

## 4. Выходные параметры
Настройки внутри хранилища (kv/secrets/roles) — конфигурации Key/Value, секретов и ролей, созданные соответствующими операциями.
Настройки самого хранилище (сайзинг, объемы) — параметры ресурсов и хранилища данных, примененные к сервису.
Статус кластера (running / suspended) — текущее состояние работы кластера.
url для подключения к веб — адрес веб-интерфейса сервиса.

---

## 5. Дополнительная информация
При удалении хранилища все данные и настройки безвозвратно удаляются.
При использовании доменного имени требуется корректная настройка DNS.
Операции управления секретами и ролями выполняются только после успешного создания хранилища.
Удаление кластера производится через операцию `suspend`, а удаление становится доступно через 14 дней после остановки кластера
Правило выше не относится к операции `delete_kv` / `delete_secrets` / `delete_role`","operations":[{"svcOperationId":215,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/suspend/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":216,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/resume/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":237,"operation":"create_policy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/create_policy/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":233,"operation":"delete_secrets","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/delete_secrets/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":234,"operation":"restart","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/restart/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":210,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/create/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":211,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/modify/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":238,"operation":"update_policy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/update_policy/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":239,"operation":"delete_policy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/delete_policy/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":232,"operation":"recovery_secrets","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/recovery_secrets/job/master/buildWithParameters","descr":null,"man":"Данная операция подразумевает откат на конкретную версию в секрете.

**Это не восстановление удалённого секрета**"},{"svcOperationId":212,"operation":"create_kv","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/create_kv/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":230,"operation":"update_secrets","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/create_secrets/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":213,"operation":"delete_kv","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/delete_kv/job/master/buildWithParameters","descr":null,"man":"**ОСТОРОЖНО**
Удаление KV подразумевает удаление ВСЕХ secrets внутри этой KV"},{"svcOperationId":231,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/delete/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":214,"operation":"create_secrets","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/create_secrets/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":236,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Openbao/job/reconcile/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/152.json b/artifacts/api-meta/dev/services/152.json new file mode 100644 index 0000000..a80abdb --- /dev/null +++ b/artifacts/api-meta/dev/services/152.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svc":{"svcId":152,"svc":"Темплейт k8s-2-clone","svcShort":"template","code":null,"version":"master","orchestratorName":"Template","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/create/master/buildWithParameters","isProductionReady":false,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Болванка для тестирования","man":null,"operations":[{"svcOperationId":217,"operation":"create_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/create_topic/job/","descr":null,"man":"# Инструкция по управлению топиками Apache Kafka через платформу

## 1. Общая информация

---

Топик — это основная сущность в Apache Kafka, предназначенная для приёма сообщений от продюсеров и передачи их консюмерам.
Платформа позволяет создавать, удалять и изменять параметры топиков без прямого доступа к брокерам, обеспечивая удобное управление через интерфейс или API.

---

## Доступные операции

- **create_topic** — Создание топика
- **modify_topic** — Модификация топика
- **delete_topic** — Удаление топика

---

## 2. Параметры создания топика

Ниже перечислены параметры, которые необходимо указать при создании нового топика:

* **Имя топика**
Название топика.
Должно быть уникальным в пределах кластера.
Пример: `orders-events`.

* **Партиции**
Количество партиций топика.
Рекомендуется выбирать с учётом уровня параллелизма потребителей и предполагаемой нагрузки.
Пример: `6`. Здесь важно рассказать о том как происходит расчет оптимального количества
Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.

* **Реплики**
Количество реплик для каждой партиции.
Обычно равно количеству доступных брокеров или меньше.
Пример: `3`.


---

## 4. Параметры модификации топика

Для уже существующих топиков можно изменять параметры. Все параметры являются опциональными:

* **Имя топика**
Название топика.
Пример: `orders-events`.

* **Партиции**
Новое количество партиций.
Пример: `12`.

* **Реплики**
Новое количество реплик.
Пример: `2`.

---

## 5. Рекомендации

* Планируйте количество партиций с запасом — уменьшение их числа невозможно.
* Количество реплик должно соответствовать требуемому уровню отказоустойчивости, но не превышать количество брокеров.
* Изменение параметров топика в рабочем окружении может временно влиять на производительность. Рекомендуется проводить крупные изменения в периоды минимальной нагрузки.

---"},{"svcOperationId":218,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/suspend/job/","descr":null,"man":null},{"svcOperationId":219,"operation":"modify_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/modify_topic/job/","descr":null,"man":"# Инструкция по управлению топиками Apache Kafka через платформу

## 1. Общая информация

---

Топик — это основная сущность в Apache Kafka, предназначенная для приёма сообщений от продюсеров и передачи их консюмерам.
Платформа позволяет создавать, удалять и изменять параметры топиков без прямого доступа к брокерам, обеспечивая удобное управление через интерфейс или API.

---

## Доступные операции

- **create_topic** — Создание топика
- **modify_topic** — Модификация топика
- **delete_topic** — Удаление топика

---

## 2. Параметры создания топика

Ниже перечислены параметры, которые необходимо указать при создании нового топика:

* **Имя топика**
Название топика.
Должно быть уникальным в пределах кластера.
Пример: `orders-events`.

* **Партиции**
Количество партиций топика.
Рекомендуется выбирать с учётом уровня параллелизма потребителей и предполагаемой нагрузки.
Пример: `6`. Здесь важно рассказать о том как происходит расчет оптимального количества
Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.

* **Реплики**
Количество реплик для каждой партиции.
Обычно равно количеству доступных брокеров или меньше.
Пример: `3`.


---

## 4. Параметры модификации топика

Для уже существующих топиков можно изменять параметры. Все параметры являются опциональными:

* **Имя топика**
Название топика.
Пример: `orders-events`.

* **Партиции**
Новое количество партиций.
Пример: `12`.

* **Реплики**
Новое количество реплик.
Пример: `2`.

---

## 5. Рекомендации

* Планируйте количество партиций с запасом — уменьшение их числа невозможно.
* Количество реплик должно соответствовать требуемому уровню отказоустойчивости, но не превышать количество брокеров.
* Изменение параметров топика в рабочем окружении может временно влиять на производительность. Рекомендуется проводить крупные изменения в периоды минимальной нагрузки.

---"},{"svcOperationId":220,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/resume/job/","descr":null,"man":null},{"svcOperationId":221,"operation":"delete_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/delete_topic/job/","descr":null,"man":null},{"svcOperationId":222,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/create_user/job/","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.

---

## 1. Общая информация

Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.
Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.
Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.

---

## Доступные операции

- **create_user** — Создание пользователя
- **modify_user** — Модификация пользователя
- **delete_user** — Удаление пользователя

---

## 2. Параметры создания пользователя

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

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 3. Параметры модификации пользователя

Ниже перечислены параметры, которые необходимо указать при модификации пользователя:

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 4. Параметры удалении пользователя

Ниже перечислены параметры, которые необходимо указать при удалении пользователя:

* **Имя пользователя**
Имя удаляемого пользователя.
Пример: `username-admin`

## 5. Выходные параметры

После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:

* **ca.crt**
Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.
Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **ca.p12**
PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.p12
```

* **ca.password**
Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

* **user.crt**
Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.
Используется совместно с приватным ключом `user.key` для аутентификации.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **user.key**
Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.key
```

* **user.p12**
PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo "<содержание поля>" | base64 -d > <название>.p12
```

* **user.password**
Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

Эти параметры используются для настройки TLS-подключения.

---

## 6. Пример конфигурации клиента внутри кластера

Пример пода:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: kafka-4
spec:
volumes:
- name: work
emptyDir: {}
containers:
- name: kcat
image: quay.io/strimzi/kafka:latest-kafka-4.0.0
command: ["sleep", "5600"]
volumeMounts:
- name: work
mountPath: /work
restartPolicy: Never
```

Создаём под и сохраняем сертификаты:

```bash
kubectl cp user.p12 kafka-4:/work/
kubectl cp ca.p12 kafka-4:/work/
```

Создаём файлы конфигурации:

```bash
cat > /work/user-read.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

```bash
cat > /work/user-write.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user-write.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

Листинг доступных топиков:

```bash
/opt/kafka/bin/kafka-topics.sh \\
--bootstrap-server kafkak8s-bootstrap-external:9093 \\
--command-config /work/user-read.properties \\
--list
```

Запись сообщений:

```bash
/opt/kafka/bin/kafka-console-producer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--producer.config /work/user-write.properties
```

Чтение сообщений:

```bash
/opt/kafka/bin/kafka-console-consumer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--from-beginning \\
--group <group> \\
--consumer.config /work/user-read.properties \\
--max-messages 50
```

---

## 7. Пример внешнего подключения с использованием **kcat**

**Листинг топиков**

```bash
kcat -b <externalConnect.bootstrap.fqdn>:9093 \\
-L \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Запись сообщения**

```bash
echo "hello from kcat" | kcat -P \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-write.crt \\
-X ssl.key.location=./user-write.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Чтение сообщений**

```bash
kcat -C \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-o beginning \\
-q \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

---


## 9. Рекомендации

* Минимизируйте набор разрешённых операций для повышения безопасности.
* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.
* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.
* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.

---"},{"svcOperationId":223,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/create/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":224,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/modify/job/","descr":null,"man":null},{"svcOperationId":225,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/delete/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":226,"operation":"modify_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/modify_user/job/","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.

---

## 1. Общая информация

Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.
Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.
Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.

---

## Доступные операции

- **create_user** — Создание пользователя
- **modify_user** — Модификация пользователя
- **delete_user** — Удаление пользователя

---

## 2. Параметры создания пользователя

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

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 3. Параметры модификации пользователя

Ниже перечислены параметры, которые необходимо указать при модификации пользователя:

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 4. Параметры удалении пользователя

Ниже перечислены параметры, которые необходимо указать при удалении пользователя:

* **Имя пользователя**
Имя удаляемого пользователя.
Пример: `username-admin`

## 5. Выходные параметры

После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:

* **ca.crt**
Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.
Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **ca.p12**
PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.p12
```

* **ca.password**
Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

* **user.crt**
Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.
Используется совместно с приватным ключом `user.key` для аутентификации.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **user.key**
Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.key
```

* **user.p12**
PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo "<содержание поля>" | base64 -d > <название>.p12
```

* **user.password**
Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

Эти параметры используются для настройки TLS-подключения.

---

## 6. Пример конфигурации клиента внутри кластера

Пример пода:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: kafka-4
spec:
volumes:
- name: work
emptyDir: {}
containers:
- name: kcat
image: quay.io/strimzi/kafka:latest-kafka-4.0.0
command: ["sleep", "5600"]
volumeMounts:
- name: work
mountPath: /work
restartPolicy: Never
```

Создаём под и сохраняем сертификаты:

```bash
kubectl cp user.p12 kafka-4:/work/
kubectl cp ca.p12 kafka-4:/work/
```

Создаём файлы конфигурации:

```bash
cat > /work/user-read.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

```bash
cat > /work/user-write.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user-write.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

Листинг доступных топиков:

```bash
/opt/kafka/bin/kafka-topics.sh \\
--bootstrap-server kafkak8s-bootstrap-external:9093 \\
--command-config /work/user-read.properties \\
--list
```

Запись сообщений:

```bash
/opt/kafka/bin/kafka-console-producer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--producer.config /work/user-write.properties
```

Чтение сообщений:

```bash
/opt/kafka/bin/kafka-console-consumer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--from-beginning \\
--group <group> \\
--consumer.config /work/user-read.properties \\
--max-messages 50
```

---

## 7. Пример внешнего подключения с использованием **kcat**

**Листинг топиков**

```bash
kcat -b <externalConnect.bootstrap.fqdn>:9093 \\
-L \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Запись сообщения**

```bash
echo "hello from kcat" | kcat -P \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-write.crt \\
-X ssl.key.location=./user-write.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Чтение сообщений**

```bash
kcat -C \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-o beginning \\
-q \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

---


## 9. Рекомендации

* Минимизируйте набор разрешённых операций для повышения безопасности.
* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.
* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.
* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.

---"},{"svcOperationId":227,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/delete_user/job/","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.

---

## 1. Общая информация

Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.
Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.
Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.

---

## Доступные операции

- **create_user** — Создание пользователя
- **modify_user** — Модификация пользователя
- **delete_user** — Удаление пользователя

---

## 2. Параметры создания пользователя

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

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 3. Параметры модификации пользователя

Ниже перечислены параметры, которые необходимо указать при модификации пользователя:

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 4. Параметры удалении пользователя

Ниже перечислены параметры, которые необходимо указать при удалении пользователя:

* **Имя пользователя**
Имя удаляемого пользователя.
Пример: `username-admin`

## 5. Выходные параметры

После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:

* **ca.crt**
Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.
Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **ca.p12**
PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.p12
```

* **ca.password**
Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

* **user.crt**
Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.
Используется совместно с приватным ключом `user.key` для аутентификации.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **user.key**
Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.key
```

* **user.p12**
PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo "<содержание поля>" | base64 -d > <название>.p12
```

* **user.password**
Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

Эти параметры используются для настройки TLS-подключения.

---

## 6. Пример конфигурации клиента внутри кластера

Пример пода:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: kafka-4
spec:
volumes:
- name: work
emptyDir: {}
containers:
- name: kcat
image: quay.io/strimzi/kafka:latest-kafka-4.0.0
command: ["sleep", "5600"]
volumeMounts:
- name: work
mountPath: /work
restartPolicy: Never
```

Создаём под и сохраняем сертификаты:

```bash
kubectl cp user.p12 kafka-4:/work/
kubectl cp ca.p12 kafka-4:/work/
```

Создаём файлы конфигурации:

```bash
cat > /work/user-read.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

```bash
cat > /work/user-write.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user-write.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

Листинг доступных топиков:

```bash
/opt/kafka/bin/kafka-topics.sh \\
--bootstrap-server kafkak8s-bootstrap-external:9093 \\
--command-config /work/user-read.properties \\
--list
```

Запись сообщений:

```bash
/opt/kafka/bin/kafka-console-producer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--producer.config /work/user-write.properties
```

Чтение сообщений:

```bash
/opt/kafka/bin/kafka-console-consumer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--from-beginning \\
--group <group> \\
--consumer.config /work/user-read.properties \\
--max-messages 50
```

---

## 7. Пример внешнего подключения с использованием **kcat**

**Листинг топиков**

```bash
kcat -b <externalConnect.bootstrap.fqdn>:9093 \\
-L \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Запись сообщения**

```bash
echo "hello from kcat" | kcat -P \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-write.crt \\
-X ssl.key.location=./user-write.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Чтение сообщений**

```bash
kcat -C \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-o beginning \\
-q \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

---


## 9. Рекомендации

* Минимизируйте набор разрешённых операций для повышения безопасности.
* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.
* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.
* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.

---"}]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/153.json b/artifacts/api-meta/dev/services/153.json new file mode 100644 index 0000000..c0a84b7 --- /dev/null +++ b/artifacts/api-meta/dev/services/153.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svc":{"svcId":153,"svc":"Nifi","svcShort":"nifi","code":null,"version":"master","orchestratorName":"Nifi","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nifi/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"ETL-система","man":null,"operations":[{"svcOperationId":235,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nifi/job/delete/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":229,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nifi/job/create/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/19.json b/artifacts/api-meta/dev/services/19.json new file mode 100644 index 0000000..909c1e1 --- /dev/null +++ b/artifacts/api-meta/dev/services/19.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svc":{"svcId":19,"svc":"Организация в Cloud Director","svcShort":"vcOrg","code":null,"version":"master","orchestratorName":"Org","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Org/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":2,"iconSrc":null,"descr":null,"man":"# Инструкция по развертыванию Организация в Cloud Director через платформу

## 1. Общая информация

Сервис **Организация в Cloud Director** предназначен для управления изолированными организационными единицами (тенантами) внутри инфраструктуры Cloud Director. Он обеспечивает создание, модификацию и администрирование организаций, предоставление им облачных ресурсов, а также контроль уровня доступа. Сервис используется для организации рабочих окружений потребителей, управления жизненным циклом организаций и их сетевой инфраструктурой.

### Доступные операции

**create** — Создание новой организации с заданными характеристиками и типом доступа.
**delete** — Удаление организации после перехода в состояние suspend; приводит к удалению всех связанных сущностей.
**modify** — Изменение параметров внутри организации (на текущий момент поддерживается изменение ipSpaces).
**suspend** — Заморозка организации, ограничение возможности изменения и добавления сущностей.
**resume** — Разморозка организации, восстановление функций управления.

---

## 2. Параметры развертывания

Параметры входных данных операции **create**:

### Платформа для развертывания
Описание: платформа, на которой будет создана организация.
Пример значения: `ngcloud.ru`.

### Тип организации
Описание: тип создаваемой организации.
Варианты:
- `iaas` — организация с прямым доступом к облаку и авторизацией через Keycloak.
- `saas` — организация под управлением Nubes, без прямого доступа к облаку.

---

## 3. Рекомендованные характеристики

### Тестовое окружение
- Тип организации: `iaas` для обеспечения полного доступа к облачным ресурсам и самостоятельного управления.

### Промышленное окружение
- Тип организации: `saas` (упрощённая модель использования).

---

## 4. Выходные параметры

Услуга предоставляет следующие выходные параметры (формируются в процессе операций):

### Url организации
Для быстрого доступа в тенант

### Статус организации
Отражает текущее состояние и параметры.

---

## 5. Дополнительная информация

- Для конфигурации внешних IP внутри организации необходимо предварительно создать:
-- хотя бы один **Виртуальный датацентр (VDC)** привязанный к этой организации;
-- хотя бы один **Сетевой шлюз периметра (Edge Gateway)**, привязанный к vdc выше.
- Удаление организации возможно только через 14 дней после перевода в состояние suspend.
- Удаление организации приводит к удалению всех связанных сущностей: VDC, Edge Gateway, пулов IP, сетей, ВМок и иных объектов.
- Операция suspend не останавливает виртуальные машины, но блокирует любые изменения инфраструктуры внутри организации.
- Для iaas-организаций доступ осуществляется через Keycloak.","operations":[{"svcOperationId":143,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Org/job/suspend/job/master/buildWithParameters","descr":null,"man":"Операция **не останавливает ВМки** в облаке, но не даёт редактировать все сущности внутри тенанта"},{"svcOperationId":144,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Org/job/resume/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":136,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Org/job/create/job/master/buildWithParameters","descr":null,"man":"`IaaS` - Доступ в Keycloak предоставляется пользователю, который создаёт услугу
`SaaS` - Без доступа к Keycloak"},{"svcOperationId":137,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Org/job/delete/job/master/buildWithParameters","descr":null,"man":"Удалить возможно только через 14 дней после выполнения операции `suspend`
**ОСТОРЖНО: Удаление приводит к полному удалению всех сущностей внутри этого тенанта**

Если существуют инстансы VDC, Edge, vApp, Vm или Kubernetes-кластер Штурвал, которые были созданы, из ЛК удалены не будут. Необходимо обратиться к `технической поддержке` для удаления инстансов"},{"svcOperationId":249,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Org/job/reconcile/job/master/buildWithParameters","descr":"Необходимо для актуализации состояния организации.
Операция приводит инстанс услуги к текущей целевой модели, принятой в Личном Кабинете: обновляет информацию из Cloud Director, производит миграцию состояния услуги до последней версии схемы","man":null},{"svcOperationId":207,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Org/job/modify/job/master/buildWithParameters","descr":null,"man":"Для возможности изменения параметров предварительно необходимо создать **Виртуальный датацентр (VDC)**, потом **Сетевой шлюз периметра (Edge Gateway)**
Также при удалении ipSpaces убедитесь, что все внешние IP удалены. В случае если хоть одна привязка vIP есть, данный ipSpace удалён **не будет**"}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/2.json b/artifacts/api-meta/dev/services/2.json new file mode 100644 index 0000000..9261b26 --- /dev/null +++ b/artifacts/api-meta/dev/services/2.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svc":{"svcId":2,"svc":"Темплейт k8s","svcShort":"template","code":null,"version":"master","orchestratorName":"Template","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Template/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Болванка для тестирования","man":null,"operations":[{"svcOperationId":75,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Template/job/delete/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":74,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Template/job/create/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":97,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Template/job/suspend/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":76,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Template/job/modify/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":98,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Template/job/resume/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/20.json b/artifacts/api-meta/dev/services/20.json new file mode 100644 index 0000000..591d733 --- /dev/null +++ b/artifacts/api-meta/dev/services/20.json @@ -0,0 +1 @@ +{"queryDurationMs":104,"svc":{"svcId":20,"svc":"Организация [DEPRECATED]","svcShort":"vcOrgSaas","code":null,"version":"master","orchestratorName":"OrgSaas","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/OrgSaas/job/create/job/master/buildWithParameters","isProductionReady":false,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Без интеграции Keycloak","man":"Верхнеуровневая сущность создаваемая для Заказчика.
Внутри Организация вы можете создать: Виртуальные датацентры, Каталоги.","operations":[{"svcOperationId":118,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/OrgSaas/job/suspend/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":119,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/OrgSaas/job/resume/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":23,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/OrgSaas/job/delete/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":8,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/OrgSaas/job/create/job/master/buildWithParameters","descr":"Создание организации в Cloud Director
Id в клауд директоре создаётся на основе contragentCode","man":"Создание организации в Cloud Director
Id в клауд директоре создаётся на основе contragentCode"}]},"runDurationMs":104} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/21.json b/artifacts/api-meta/dev/services/21.json new file mode 100644 index 0000000..71c36b5 --- /dev/null +++ b/artifacts/api-meta/dev/services/21.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svc":{"svcId":21,"svc":"Виртуальный датацентр (vDC)","svcShort":"vc_vdc","code":null,"version":"master","orchestratorName":"Vdc","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vdc/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Выделение вычислительных ресурсов","man":"# Инструкция по развертыванию Виртуальный датацентр (vDC) через платформу

## 1. Общая информация

**Виртуальный датацентр (vDC)** — это логическая изолированная среда в VMware Cloud Director, предназначенная для размещения и управления виртуальными машинами, сетевой инфраструктурой и ресурсами хранения. Сервис обеспечивает выделение вычислительных ресурсов под конкретную организацию и предоставляет гибкие параметры масштабирования, контроля потребления и разделения ресурсов.

### Доступные операции

**create** — Создание виртуального датацентра (vDC) с заданными параметрами CPU, RAM, Storage и сетевой конфигурацией.
**delete** — Удаление vDC. Требуется предварительный перевод vDC в состояние *suspend*. Полное удаление возможно через 14 дней.
**modify** — Внесение изменений в параметры ресурсов (CPU/RAM/Storage), выделенных для vDC.
**suspend** — Заморозка vDC. Новые ресурсы или изменения внутри vDC становятся невозможными, работа ВМ не останавливается.
**resume** — Разморозка vDC. Восстановление возможности управления сущностями внутри vDC.

---

## 2. Параметры развертывания

Ниже перечислены входные параметры операции **create**.

### UUID Организации
Уникальный идентификатор организации в Cloud Director. Перед созданием vDC требуется предварительное создание услугу `Организация в Cloud Director`.

### Provider VDC в Cloud Director
Свойство ресурсной платформы, определяющее, какой пул физических ресурсов будет использоваться.

### Network Pool в Cloud Director
Определяет возможности сетевой конфигурации, включая создание Edge Gateway и выход во внешние сети.

### Гарантированная доля ЯДЕР
Гарантированный процент вычислительных ресурсов (CPU), закрепленный за vDC. Значение устанавливается разово при создании.

### Гарантированная доля ОЗУ
Гарантированный процент оперативной памяти, закрепленный за vDC. Также задаётся один раз при создании.

### Сколько аллоцировать на VDC ЯДЕР
Количество виртуальных ядер, выделяемых в рамках vDC.

### Сколько аллоцировать на VDC ОЗУ
Количество оперативной памяти в GB, выделяемой для vDC.

### Конфигурация Storage
Набор дисковых политик и их объёмов, выделяемых для vDC. Указывается имя политики и требуемый размер (GB).

---

## 3. Рекомендованные характеристики

### Тестовое окружение

- Количество ядер CPU: 10–20
- Аллоцируемая RAM: 16–64 GB
- Гарантированная доля CPU: 20%
- Гарантированная доля RAM: 20%
- Storage:
- Политика `SATA`
- Объём: 100–300 GB

### Промышленное окружение

- Количество ядер CPU: 16–128
- Аллоцируемая RAM: 64–512 GB
- Гарантированная доля CPU: 50%
- Гарантированная доля RAM: 50%
- Storage:
- Политики уровня `SSD`
- Объём: 1–10 TB, выбор несколько политик под разные нагрузки

---

## 4. Выходные параметры

Выходные параметры формируются операцией **create** (и используются другими операциями):

### Имя vDC
Уникальный идентификатор созданного виртуального датацентра. Используется в дальнейших операциях (modify, suspend, delete).

### Параметры выделенных ресурсов
Подтверждение итогового объёма CPU/RAM/Storage, выделенных vDC. Используются для учёта и контроля потребления.

---

## 5. Дополнительная информация

- Перед созданием vDC необходимо обеспечить наличие корректно созданной организации и доступных пула ресурсов ресурсной платформы.
- Гарантированная доля CPU и RAM задаётся **однократно при создании vDC**. После развертывания изменить эти значения невозможно; для изменения необходимо пересоздать vDC.
- Удаление vDC возможно только через **14 дней после перевода в состояние *suspend***. Удаление очищает все связанные сущности (ВМ, сети, каталоги), поэтому необходимо убедиться, что данные перенесены.
- Платформа Cloud Director использует концепцию изолированных организационных ресурсов, поэтому корректная настройка Provider VDC и Network Pool является обязательной при создании vDC.
- При изменении параметров (modify) изменяются только показатели CPU, RAM и Storage. Сетевые параметры и гарантированные доли остаются неизменными.
","operations":[{"svcOperationId":112,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vdc/job/modify/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":9,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vdc/job/create/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":24,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vdc/job/delete/job/master/buildWithParameters","descr":null,"man":"Удалить возможно только через 14 дней после выполнения операции `suspend`
**ОСТОРЖНО: Удаление приводит к полному удалению всех сущностей внутри этого VDC**

Если существуют инстансы Edge, vApp, Vm или Kubernetes-кластер Штурвал, которые были созданы, из ЛК удалены не будут. Необходимо обратиться к `технической поддержке` для удаления инстансов"},{"svcOperationId":250,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vdc/job/reconcile/job/master/buildWithParameters","descr":"Необходимо для актуализации состояния виртуального ДЦ.
Операция приводит инстанс услуги к текущей целевой модели, принятой в Личном Кабинете: обновляет информацию из Cloud Director, производит миграцию состояния услуги до последней версии схемы","man":null},{"svcOperationId":171,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vdc/job/suspend/job/master/buildWithParameters","descr":null,"man":"Операция **не останавливает ВМки** в облаке, но не даёт редактировать все сущности внутри VDC"},{"svcOperationId":172,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vdc/job/resume/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/22.json b/artifacts/api-meta/dev/services/22.json new file mode 100644 index 0000000..b9c50f3 --- /dev/null +++ b/artifacts/api-meta/dev/services/22.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svc":{"svcId":22,"svc":"Сетевой шлюз периметра (Edge)","svcShort":"vc_nsxt","code":null,"version":"master","orchestratorName":"Nsxt","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Nsxt/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Обеспечение сетевой доступности в тенанте","man":"# Инструкция по развертыванию Сетевой шлюз периметра (Edge) через платформу

## 1. Общая информация

Сервис **Сетевой шлюз периметра (Edge)** предназначен для создания периметрового сетевого шлюза в рамках одного виртуального датацентра (vDC) или группы виртуальных датацентров (groupvDC).
При создании автоматически разворачивается routed-сеть с адресным пространством `10.10.102.0/24`.
Сервис обеспечивает сетевую изоляцию, маршрутизацию, а также может включать функциональность балансировщика нагрузки AVI (ALB) для последующей интеграции, включая поддержку кластеров Штурвал.

### Доступные операции

**create** — Создание нового Edge с привязкой к vDC или groupvDC и развёртыванием routed-сети.
**delete** — Удаление ранее созданного Edge. Недоступно при наличии зависимых услуг (vApp, VM, Кластер Штурвал).
**modify** — Изменение параметров и сетевых настроек существующего Edge.

---

## 2. Параметры развертывания

Ниже приведены параметры операции **create**.

### Тип родительской услуги
Определяет контекст размещения Edge.
Допустимые значения: `vdc`, `groupvdc`.
Использование:
- При выборе `vdc` обязателен параметр **UUID VDC**.
- При выборе `groupvdc` обязателен параметр **UUID Группы VDC**.

### UUID VDC
Идентификатор виртуального датацентра.
Необходимо предварительно создать vDC через услугу «Виртуальный датацентр (vDC)».
Указывается только при выборе родительского типа `vdc`.

### UUID Группы VDC
Идентификатор группы виртуальных датацентров.
Создаётся через услугу «Группа виртуальных датацентров (groupvDC)».
Используется при выборе родительского типа `groupvdc`.

### Включить ALB
Флаг активации AVI Load Balancer в Cloud Director.
Пример значения: `true`/`false`.
Нужен для развёртывания кластера Штурвал и возможности создания Virtual Services.

### Наименование segroup
Имя сервиса групп (segroup) на уровне ресурсной платформы.
Обязательно при включённом ALB.
Определяет группу, в которой будут выделяться пулы AVI для Virtual Services.

### virtualServicesCount
Количество резервируемых виртуальных сервисов (Virtual Services) на AVI.
Типичное значение: 1–10 в зависимости от нагрузки.

---

## 3. Рекомендованные характеристики

### Тестовое окружение (Test)

- Тип родительской услуги: `vdc`
- virtualServicesCount: 1–2
- ALB: выключен по умолчанию (включать только при необходимости тестирования Штурвала)
- segroup: задаётся только при включённом ALB
- VDC гарантии CPU/RAM: минимальные (поскольку изменить их после создания нельзя)

### Промышленное окружение (Production)

- Тип родительской услуги: `groupvdc` при работе с распределёнными нагрузками или `vdc` для локализованных проектов
- virtualServicesCount: 3–10, исходя из предполагаемого количества публикаций
- ALB: включён, если требуется высокая доступность сервисов или используется кластер Штурвал
- segroup: рекомендуется использовать выделенную группу под проект
- VDC гарантии CPU/RAM: повышенные, с учётом того, что изменить их после создания невозможно без пересоздания vDC

---

## 4. Выходные параметры

### Имя Edge
Уникальное название созданного сетевого шлюза, используется для ссылок и дальнейших операций.

### Имя routed-сети
Автоматически созданная routed-сеть с подсетью `10.10.102.0/24`, используется для подключения ресурсов.

### Параметры Edge
Набор параметров, указанных пользователем при создании: тип услуги, ALB, segroup, virtualServicesCount и др.
Используются в операциях modify и для анализа состояния сервиса.

---

## 5. Дополнительная информация

- В рамках сервиса **один раз при создании задаётся гарантированная доля CPU/RAM vDC**. Изменить её невозможно — требуется пересоздание vDC.
- Удаление Edge недоступно при наличии зависимых ресурсов (vApp, VM, кластер Штурвал).
- При использовании ALB необходимо корректно указывать segroup, чтобы обеспечить корректное выделение пулов AVI.
- При выборе режима `groupvdc` следует учитывать распределение нагрузки между несколькими vDC.
- SNAT для всех ресурсов внутри Edge можно активировать через операцию modify (параметры выделения VIP и ipSpace).

","operations":[{"svcOperationId":111,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Nsxt/job/modify/job/master/buildWithParameters","descr":null,"man":"Для создания SNAT Правила убедитесь, что в организации есть свободные IP
Редактировать кол-во свободных IP можно в услуге `Организация в Cloud Director` -> `modify`"},{"svcOperationId":25,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Nsxt/job/delete/job/master/buildWithParameters","descr":null,"man":"Невозможно удалить если routed-сеть в Edge связана с:
- vApp
- VM
- Kubernetes-кластер Штурвал

Запустить операцию возможно, но будет ошибка"},{"svcOperationId":252,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Nsxt/job/reconcile/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":10,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Nsxt/job/create/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/23.json b/artifacts/api-meta/dev/services/23.json new file mode 100644 index 0000000..b7a5e17 --- /dev/null +++ b/artifacts/api-meta/dev/services/23.json @@ -0,0 +1 @@ +{"queryDurationMs":65,"svc":{"svcId":23,"svc":"VM в Cloud Director (старый формат) (vc_vm)","svcShort":"vc_vm","code":null,"version":"master","orchestratorName":"Vm","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vm/job/create/job/master/buildWithParameters","isProductionReady":false,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Виртуальная машина без каких-либо особенностей.
Данная услуга запускает vc_ip для выдачи белого адреса и подключения к ВМ","man":"Виртуальная машина без каких-либо особенностей.
Данная услуга запускает vc_ip для выдачи белого адреса и подключения к ВМ","operations":[{"svcOperationId":26,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vm/job/create/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":29,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vm/job/delete/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":27,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vm/job/suspend/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":28,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vm/job/resume/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":68,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vm/job/modify/job/master/buildWithParameters","descr":"Операция автоматически останавливает ВМ.","man":"Операция автоматически останавливает ВМ."}]},"runDurationMs":65} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/24.json b/artifacts/api-meta/dev/services/24.json new file mode 100644 index 0000000..481c0a5 --- /dev/null +++ b/artifacts/api-meta/dev/services/24.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svc":{"svcId":24,"svc":"DEPRECATED Правила маршрутизации для VM (vc_nat)","svcShort":"vcNat","code":null,"version":null,"orchestratorName":"Nat","createUrl":null,"isProductionReady":false,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Правила маршрутизации в Cloud Director. Требует наличие сетей, ВМ
DEPRECATED","man":"Правила маршрутизации в Cloud Director. Требует наличие сетей, ВМ
DEPRECATED","operations":[]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/25.json b/artifacts/api-meta/dev/services/25.json new file mode 100644 index 0000000..c96ba58 --- /dev/null +++ b/artifacts/api-meta/dev/services/25.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svc":{"svcId":25,"svc":"Публичные IP адреса","svcShort":"vcexternalip","code":null,"version":"master","orchestratorName":"Ip","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Ip/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Резервирование IP адреса","man":"**Обычно эта услуга разворачивается автоматически при развёртывании более сложных услуг**
Вручную создавать можно, однако услуга требует много параметров, о которых можно просто не знать

Резервировать публичные IP адреса можно только после создания NGcloud Organization, NGcloud Виртуальный датацентр, NGcloud Каталог, Сетевой шлюз периметра.
Вы можете назначить IP адрес для существующего экземпляра сервиса.","operations":[{"svcOperationId":56,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Ip/job/create/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":57,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Ip/job/delete/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":197,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Ip/job/modify/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":58} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/26.json b/artifacts/api-meta/dev/services/26.json new file mode 100644 index 0000000..23dadeb --- /dev/null +++ b/artifacts/api-meta/dev/services/26.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svc":{"svcId":26,"svc":"Виртуальный каталог ВМ (vApp)","svcShort":"vapp","code":null,"version":"master","orchestratorName":"Vapp","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vapp/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Группировка виртуальных машин","man":"# Инструкция по развертыванию Виртуальный каталог ВМ (vApp) через платформу

## 1. Общая информация

**Виртуальный каталог ВМ (vApp)** — это логическая каталог, объединённая в единый управляемый объект. Сервис предназначен для совместного развертывания, управления жизненным циклом и сетевого взаимодействия набора связанных ВМ. Основные функции включают:
- централизованное управление включением, выключением и приостановкой группы ВМ;
- унифицированный сетевой доступ через привязанный Edge-шлюз;

### Доступные операции

**create** — Создание нового vApp с привязкой к заданным услугам VDC и Edge
**delete** — Удаление существующего vApp. Требуется предварительный перевод vApp в состояние *suspend*. Полное удаление возможно через 14 дней.
**suspend** — Остановка vApp (выключение всех ВМ внутри каталога)
**resume** — Запуск vApp (включение всех ВМ внутри каталога)

---

## 2. Параметры развертывания

Параметры берутся из операции **create**.

### UUID Услуги VDC
Уникальный идентификатор услуги «Виртуальный датацентр (vDC)».
Используется для определения вычислительной инфраструктуры, в которой будет развернут vApp.

### UUID Услуги Edge
Уникальный идентификатор услуги «Сетевой шлюз периметра (Edge)».
Обеспечивает маршрутизацию и сетевое подключение. Может быть привязан к группе VDC, поэтому выбирается отдельно.

### Имя vApp
Строгое имя, соответствующее маске формирования DNS-имени.
Используется как часть в DNS-имени при создании виртуальных машин.

---

## 3. Рекомендованные характеристики
Так как является промежуточным этапом для создания ВМ, все характеристики описываются в услуге `Виртуальная машина`

---

## 4. Выходные параметры

### Параметры vApp
Заданные при создании vApp

---

## 5. Дополнительная информация

- Привязка к VDC и Edge осуществляется раздельно, поскольку один Edge может обслуживать несколько VDC (через услугу `Группа виртуальных датацентров (groupvDC)`). Это гарантирует возможность развернуть ВМ в единой сети, но в разных виртуальных датацентрах.
- Перед удалением vApp необходимо вручную перевести его в состояние **suspend**. Удаление возможно только спустя 14 дней после этого шага.
- Операция delete удаляет весь vApp полностью, включая все виртуальные машины, связанные с ним.
- Рекомендуется заранее планировать сетевые связи и назначения DNS-имён для обеспечения корректной работы сервисов, развернутых внутри vApp.
- При проектировании инфраструктуры следует учитывать зависимости между Edge-шлюзом, VDC и размещаемыми ВМ, чтобы избежать ограничений при масштабировании и интеграции.","operations":[{"svcOperationId":209,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vapp/job/resume/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":208,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vapp/job/suspend/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":69,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vapp/job/create/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":70,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/Vapp/job/delete/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/27.json b/artifacts/api-meta/dev/services/27.json new file mode 100644 index 0000000..08397f3 --- /dev/null +++ b/artifacts/api-meta/dev/services/27.json @@ -0,0 +1 @@ +{"queryDurationMs":108,"svc":{"svcId":27,"svc":"VM в Cloud Director (vc_vmV2)","svcShort":"vc_vm_v2","code":null,"version":"master","orchestratorName":"VmV2","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VmV2/job/create/job/master/buildWithParameters","isProductionReady":false,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Виртуальная машина с возможностью настройки Cloud Init
Можно развернуть в услуге несколько ВМ
В зависимости от настроек можно выдавать на ВМ vip + dns","man":null,"operations":[{"svcOperationId":100,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VmV2/job/create/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":101,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VmV2/job/delete/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":102,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VmV2/job/resume/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":103,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VmV2/job/suspend/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":104,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VmV2/job/modify/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":108} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/28.json b/artifacts/api-meta/dev/services/28.json new file mode 100644 index 0000000..7d653eb --- /dev/null +++ b/artifacts/api-meta/dev/services/28.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svc":{"svcId":28,"svc":"Виртуальная машина","svcShort":"vc_vm_v3","code":null,"version":"master","orchestratorName":"VmV3","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VmV3/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Создание виртуальной машины","man":"# Документация по разворачиванию ВМ в Личном кабинете

Данный сервис позволяет разворачивать виртуальные машины (ВМ) непосредственно из Личного кабинета (ЛК).

## Доступные операции
- **create** — Создание виртуальной машины
- **delete** — Удаление виртуальной машины
- **resume** — Запуск виртуальной машины
- **suspend** — Остановка виртуальной машины

---

## Параметры для развёртывания ВМ

### Обязательные параметры:

**vappUid**
UUID vApp, в которой будет создаваться виртуальная машина.
*Пример: WZ00400*

**vmName**
Уникальное имя виртуальной машины.
*Пример: test-vm*

**vmCpu**
Количество ядер процессора. Должно быть больше 0.
*Пример: 1*

**vmRam**
Объем оперативной памяти в гигабайтах. Должно быть больше 0.
*Пример: 1*


**accessPortList**
Белый список портов для доступа к виртуальной машине извне в формате JSON.
*Пример: ["22","10050]*

**imageVm**
Образ операционной системы для развёртывания.
*Доступные значения: RockyLinux_9-16G-cloudinit, Ubuntu_22-20G, Debian_13-20G*

**userLogin**
Логин пользователя для SSH-доступа.
*По умолчанию: myuser*

**userPublicKey**
Публичный SSH-ключ пользователя в формате OpenSSH.
*Пример: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...*

**needAddZabbixTemplate**
Значение истина\\ложь, определяющее будет ли добавлен хост в zabbix.
*Пример: true*

### Опциональные параметры:

**accessIpList**
Белый список IP-адресов для доступа к виртуальной машине в формате JSON. Если оставить пустым, вм будет доступена со всех адресов.
*Пример: ["192.168.1.1", "10.0.0.5"]*

**vmDisk**
Размер дополнительного диска в гигабайтах. Должно быть больше 0.
*Пример: 50*

**ipSpaceName**
Внешний IP-адрес. Если не требуется — укажите значение "no-needed" (В нем не будет работать сбор метрик zabbix).

**cloudInit**
YAML-скрипт для кастомизации системы через cloud-init.

---

## Доступные образы операционных систем

### RockyLinux_9-16G-cloudinit
Базовый образ на основе Rocky Linux 9 (Rocky-9.6-x86_64-minimal) для серверных задач.
- Размер системного диска: 16 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

### Ubuntu_22-20G
Образ на основе Ubuntu Server 22.04 LTS для облачного окружения.
- Размер системного диска: 20 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

### Debian_13-20G
Образ на основе Debian 13 (Trixie) для стабильной серверной работы.
- Размер системного диска: 20 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

---

## Пример использования Cloud-init

```yaml
users:
- name: myuser
sudo: ALL=(ALL) NOPASSWD:ALL
groups: sudo
shell: /bin/bash
ssh-authorized-keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...

packages:
- nginx

runcmd:
- systemctl enable --now nginx
- systemctl restart nginx
```

---

## Результат выполнения

После успешного развёртывания в Личном кабинете появится новая виртуальная машина с заданными характеристиками. SSH-доступ осуществляется с использованием указанных логина и публичного ключа.

---

## Важные примечания

### Особенности работы:
- Для отключения внешнего IP укажите значение "no-needed" в параметре ipSpaceName
- Параметр cloudInit является опциональным

### Ограничения:
- Не рекомендуется использовать продолжительные инструкции в cloud-init (таймаут 5 минут)
- Не поддерживается запись файлов через cloud-init
- Не реализовано создание резервных копий ВМ

---

## Диагностика проблем с cloud-init

### Основной лог-файл:
```bash
/var/log/cloud-init.log
```

### Пакет не устанавливается:
- Проверьте доступность пакета в репозитории
- Убедитесь в правильности написания имени пакета
- Попробуйте установить вручную: `apt install <имя_пакета>` (Debian/Ubuntu) или `dnf install <имя_пакета>` (Rocky Linux)

### Команда не выполняется:
- Проверьте наличие требуемой утилиты в системе
- Убедитесь в правильности синтаксиса команды
- Попробуйте выполнить команду вручную для диагностики","operations":[{"svcOperationId":132,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VmV3/job/create/job/master/buildWithParameters","descr":null,"man":"# Документация по использованию услуги развёртывания ВМ в Личном кабинете

Данный сервис позволяет разворачивать виртуальные машины (ВМ) непосредственно из Личного кабинета (ЛК).

## Доступные операции
- **create** — Создание виртуальной машины
- **delete** — Удаление виртуальной машины
- **resume** — Запуск виртуальной машины
- **suspend** — Остановка виртуальной машины

---

## Параметры для развёртывания ВМ

### Обязательные параметры:

**vappUid**
UUID vApp, в которой будет создаваться виртуальная машина.
*Пример: WZ00400*

**vmName**
Уникальное имя виртуальной машины.
*Пример: test-vm*

**vmCpu**
Количество ядер процессора. Должно быть больше 0.
*Пример: 1*

**vmRam**
Объем оперативной памяти в гигабайтах. Должно быть больше 0.
*Пример: 1*


**accessPortList**
Белый список портов для доступа к виртуальной машине извне в формате JSON.
*Пример: ["22","10050]*

**imageVm**
Образ операционной системы для развёртывания.
*Доступные значения: RockyLinux_9-16G-cloudinit, Ubuntu_22-20G, Debian_13-20G*

**userLogin**
Логин пользователя для SSH-доступа.
*По умолчанию: myuser*

**userPublicKey**
Публичный SSH-ключ пользователя в формате OpenSSH.
*Пример: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...*

**needAddZabbixTemplate**
Значение истина\\лож определяющее будет ли добавлен хост в zabbix.
*Пример: true*

### Опциональные параметры:

**accessIpList**
Белый список IP-адресов для доступа к виртуальной машине в формате JSON. Если оставить пустым, вм будет доступена со всех адресов.
*Пример: ["192.168.1.1", "10.0.0.5"]*

**vmDisk**
Размер дополнительного диска в гигабайтах. Должно быть больше 0.
*Пример: 50*

**ipSpaceName**
Внешний IP-адрес. Если не требуется — укажите значение "no-needed".

**cloudInit**
YAML-скрипт для кастомизации системы через cloud-init.

---

## Доступные образы операционных систем

### RockyLinux_9-16G-cloudinit
Базовый образ на основе Rocky Linux 9 (Rocky-9.6-x86_64-minimal) для серверных задач.
- Размер системного диска: 16 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

### Ubuntu_22-20G
Образ на основе Ubuntu Server 22.04 LTS для облачного окружения.
- Размер системного диска: 20 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

### Debian_13-20G
Образ на основе Debian 13 (Trixie) для стабильной серверной работы.
- Размер системного диска: 20 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

---

## Пример использования Cloud-init

```yaml
users:
- name: myuser
sudo: ALL=(ALL) NOPASSWD:ALL
groups: sudo
shell: /bin/bash
ssh-authorized-keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...

packages:
- nginx

runcmd:
- systemctl enable --now nginx
- systemctl restart nginx
```

---

## Результат выполнения

После успешного развёртывания в Личном кабинете появится новая виртуальная машина с заданными характеристиками. SSH-доступ осуществляется с использованием указанных логина и публичного ключа.

---

## Важные примечания

### Особенности работы:
- Для отключения внешнего IP укажите значение "no-needed" в параметре ipSpaceName
- Параметр cloudInit является опциональным

### Ограничения:
- Не рекомендуется использовать продолжительные инструкции в cloud-init (таймаут 5 минут)
- Не поддерживается запись файлов через cloud-init
- Не реализовано создание резервных копий ВМ

---

## Диагностика проблем с cloud-init

### Основной лог-файл:
```bash
/var/log/cloud-init.log
```

### Пакет не устанавливается:
- Проверьте доступность пакета в репозитории
- Убедитесь в правильности написания имени пакета
- Попробуйте установить вручную: `apt install <имя_пакета>` (Debian/Ubuntu) или `dnf install <имя_пакета>` (Rocky Linux)

### Команда не выполняется:
- Проверьте наличие требуемой утилиты в системе
- Убедитесь в правильности синтаксиса команды
- Попробуйте выполнить команду вручную для диагностики"},{"svcOperationId":159,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VmV3/job/modify/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":133,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VmV3/job/delete/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":134,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VmV3/job/suspend/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":135,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VmV3/job/resume/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":164,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VmV3/job/redeploy/job/master/buildWithParameters","descr":"Полная потеря данных гарантирована
Но будет полностью сброшенная машина","man":null}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/29.json b/artifacts/api-meta/dev/services/29.json new file mode 100644 index 0000000..18bfe51 --- /dev/null +++ b/artifacts/api-meta/dev/services/29.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svc":{"svcId":29,"svc":"Группа датацентров","svcShort":"vcVdcGroup","code":null,"version":"master","orchestratorName":"VdcGroup","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VdcGroup/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Обеспечение сетевой доступности между датацентрами","man":"# Инструкция по развертыванию Группа виртуальных датацентров (groupvDC) через платформу

## 1. Общая информация

Сервис **Группа виртуальных датацентров (groupvDC)** предназначен для логического объединения нескольких виртуальных датацентров (vDC) в единую группу. Это позволяет растягивать SDN между разными vDC и централизованно управлять сетевой связностью. Управление инфраструктурой осуществляется через Cloud Director.
Сервис применяется в случаях, когда требуется обеспечить единое сетевое пространство для распределенных виртуальных датацентров.

### Доступные операции

**create** — Создание новой группы виртуальных датацентров.
**delete** — Удаление существующей группы vDC.
**add_vdc** — Добавление дополнительного виртуального датацентра в группу.
**remove_vdc** — Удаление ранее добавленного виртуального датацентра из группы.

---

## 2. Параметры развертывания

Параметры операции **create**:

### UUID VDC
Идентификатор виртуального датацентра, который будет являться первичным в группе.
Описание: требуется предварительно создать виртуальный датацентр с помощью услуги `Виртуальный датацентр (vDC)`.

---

## 3. Рекомендованные характеристики

### Тестовое окружение
- Для тестового окружения создавать группу VDC нет необходимости, так как это создаёт дополнительный слой абстракции в Cloud Director

### Промышленное окружение
- Для промышленного окружения, если в тенанте существуют разные VDC, создание groupvdc позволит снизить сетевые издержки (за счёт общей сети)

---

## 4. Выходные параметры

### Параметры groupvdc
Набор параметров, указанных пользователем при создании

---

## 5. Дополнительная информация
- Группа vDC используется для растягивания SDN между несколькими виртуальными датацентрами. Управление всеми сетевыми элементами внутри группы выполняется Cloud Director.
- Удалить первичный vDC (тот, что был указан при операции **create**) невозможно. Для его удаления необходимо удалить всю группу и создать новую.
- Перед добавлением любого vDC в группу он должен быть предварительно развернут через сервис `Виртуальный датацентр (vDC)`.
- Сети создаются не в этой услуге, а в услуге `Сетевой шлюз периметра (Edge)`. В ней необходимо будет выбрать тип `groupvdc`","operations":[{"svcOperationId":191,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VdcGroup/job/create/job/master/buildWithParameters","descr":null,"man":"**VDC Группа** нужна для объединения всех VDC в организации в одну логическую группу.
Это позволит, к примеру, создать **общую сеть** для всех VDC в организации

- Для создания группы VDC необходимо указать **инстанс** услуги VDC (`Виртуальный датацентр`)
- **Важный момент** - удалить эту VDC из группы нельзя. Если такая потребность появится, необходимо будет **ПОЛНОСТЬЮ** удалить группу VDC и уже потом создать новую"},{"svcOperationId":192,"operation":"add_vdc","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VdcGroup/job/add_vdc/job/master/buildWithParameters","descr":null,"man":"**Не нужно** выбирать UUID VDC, который уже был добавлен в группу"},{"svcOperationId":251,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VdcGroup/job/reconcile/job/master/buildWithParameters","descr":"Необходимо для актуализации состояния группы датацентров.
Операция приводит инстанс услуги к текущей целевой модели, принятой в Личном Кабинете: обновляет информацию из Cloud Director, производит миграцию состояния услуги до последней версии схемы","man":null},{"svcOperationId":193,"operation":"remove_vdc","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VdcGroup/job/remove_vdc/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":195,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/vc/job/VdcGroup/job/delete/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/32.json b/artifacts/api-meta/dev/services/32.json new file mode 100644 index 0000000..297b078 --- /dev/null +++ b/artifacts/api-meta/dev/services/32.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svc":{"svcId":32,"svc":"vc_vm_postgresql_std","svcShort":"vmpostgre","code":null,"version":null,"orchestratorName":"VmPostgre","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/cloud/job/pgsqlStd/job/create/job/master/buildWithParameters","isProductionReady":false,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Сервис настройки PostgreSQL для виртуальной машины.
Требует наличия ВМ","man":"Сервис настройки PostgreSQL для виртуальной машины.
Требует наличия ВМ","operations":[{"svcOperationId":32,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/cloud/job/pgsqlStd/job/create/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":33,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/cloud/job/pgsqlStd/job/delete/job/master/buildWithParameters","descr":"При удалении удаляется раздел с данными. Выполнять осторожно!","man":null}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/50.json b/artifacts/api-meta/dev/services/50.json new file mode 100644 index 0000000..648888a --- /dev/null +++ b/artifacts/api-meta/dev/services/50.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svc":{"svcId":50,"svc":"Nextcloud","svcShort":"nextcloud","code":null,"version":"master","orchestratorName":"Nextcloud","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nextcloud/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":"https://www.svgrepo.com/download/349455/nextcloud.svg","descr":"Платформа совместной работы","man":"Ресурсная платформа: k8s. Автоматизация: helm chart","operations":[{"svcOperationId":128,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nextcloud/job/suspend/job/","descr":"Не работает из за проблемы с отсуствием механизма зануления реплики (в вейлюсах нельзя задать количство реплик)","man":null},{"svcOperationId":129,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nextcloud/job/resume/job/","descr":null,"man":null},{"svcOperationId":16,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nextcloud/job/create/job/master/buildWithParameters","descr":"Ресурсная платформа берётся из PSQL UUID","man":"DEV-Ветка сборки Nextcloud"},{"svcOperationId":17,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nextcloud/job/delete/job/master/buildWithParameters","descr":"DEV-Ветка удаления Nextcloud","man":"DEV-Ветка удаления Nextcloud"},{"svcOperationId":66,"operation":"restart","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nextcloud/job/restart/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":67,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nextcloud/job/modify/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/81.json b/artifacts/api-meta/dev/services/81.json new file mode 100644 index 0000000..1a4d0cc --- /dev/null +++ b/artifacts/api-meta/dev/services/81.json @@ -0,0 +1 @@ +{"queryDurationMs":77,"svc":{"svcId":81,"svc":"Apache Superset","svcShort":"superset","code":null,"version":"master","orchestratorName":"Superset","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Superset/job/create/job/refactor/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Сервер отчетов","man":"Apache Superset как сервис.
Ресурсная платформа: k8s.
Автоматизация: k8s operator.
Авторизация: 2FA keycloak (для доменного логина @mgmt.nubes.ru)","operations":[{"svcOperationId":13,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Superset/job/delete/job/refactor/buildWithParameters","descr":"DEV-Ветка удаления Superset","man":"DEV-Ветка удаления Superset"},{"svcOperationId":12,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Superset/job/create/job/refactor/buildWithParameters","descr":"DEV-Ветка сборки Superset","man":"DEV-Ветка сборки Superset"}]},"runDurationMs":77} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/82.json b/artifacts/api-meta/dev/services/82.json new file mode 100644 index 0000000..efa0994 --- /dev/null +++ b/artifacts/api-meta/dev/services/82.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svc":{"svcId":82,"svc":"Container Registry","svcShort":"harbor","code":null,"version":"master","orchestratorName":"Registry","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Registry/job/create/job/refactor/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":"https://goharbor.io/img/logos/harbor-icon-color.png","descr":"Реестр для хранения образов контейнеров","man":"Расширенный реестр для управления Docker-образами с enterprise-функциями безопасности, репликации и контроля доступа.
Container Registry позволяет хранить, развертывать и управлять Docker-образами контейнеров в инфраструктуре NGcloud.
Сервис можно использовать в процессе разработки контейнеров. Например, вы можете настроить систему автоматизации на работу с реестром в Container Registry в рамках процесса непрерывной интеграции. Контейнеры идеально подходят для запуска небольших, независимых и легко изменяемых сервисов.
Чтобы начать работу, создайте реестр и загрузите в него Docker-образ
Авторизация: keycloak","operations":[{"svcOperationId":14,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Registry/job/create/job/refactor/buildWithParameters","descr":"DEV-Ветка сборки Harbor","man":"DEV-Ветка сборки Harbor"},{"svcOperationId":15,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Registry/job/delete/job/refactor/buildWithParameters","descr":"DEV-Ветка удаления Harbor","man":"DEV-Ветка удаления Harbor"}]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/88.json b/artifacts/api-meta/dev/services/88.json new file mode 100644 index 0000000..300e489 --- /dev/null +++ b/artifacts/api-meta/dev/services/88.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svc":{"svcId":88,"svc":"k8sZitiController","svcShort":"k8sZitiController","code":null,"version":"master","orchestratorName":"ZitiController","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/ZitiController/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Контроллер управления Client to service & service to service Zero trust network
","man":null,"operations":[{"svcOperationId":99,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/ZitiController/job/create/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":105,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/ZitiController/job/delete/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/89.json b/artifacts/api-meta/dev/services/89.json new file mode 100644 index 0000000..093b5a1 --- /dev/null +++ b/artifacts/api-meta/dev/services/89.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svc":{"svcId":89,"svc":"Web-сервер с фреймворком Flask","svcShort":"flask","code":"paas.flsk.0","version":"master","orchestratorName":"Flask","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Flask/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":null,"man":"# Инструкция по развертыванию Web-сервер с фреймворком Flask через платформу

## 1. Общая информация

Сервис **Web-сервер с фреймворком Flask** предназначен для развертывания веб-приложений на базе Flask.

### Доступные операции

create — включить сервис, развернуть веб-приложение с указанными параметрами.
delete — удалить сервис, только после suspend.
modify — изменить настройки сервиса и переразвернуть.
suspend — выключить веб-приложение, остановить обслуживание.
resume — включить веб-приложение после suspend.

---

## 2. Параметры развертывания

Параметры входных данных операции **create**:

### Имя домена
Описание: доменное имя для доступа к веб-приложению. Если указан FQDN, происходит проверка DNS на валидность А-записи. А-запись должна указывать на балансировщик ресурсной платформы. Если указано имя в рамках одного октета, оно будет добавлено в публичную DNS-зону.
Пример значения: строка, допустимые FQDN или имя в одном октете. Пример: example.com или myapp.

### Платформа для развертывания
Описание: кластер Kubernetes, в котором будет развернуто приложение.
Пример значения: идентификатор кластера Kubernetes.

### Квота ядра пода
Описание: количество CPU, выделяемое на под, в Milicores.
Пример значения: целое число, например 500 для 0.5 ядра.

### Квота памяти пода
Описание: количество памяти, выделяемое на под, в Megabytes.
Пример значения: целое число, например 512 для 512 MB.

### Кол-во реплик пода
Описание: количество инстансов пода для масштабирования.
Пример значения: целое число, шт, например 2.

### URL Проекта (gitpath)
Описание: полный HTTPS путь до проекта в Git-репозитории.
Пример значения: URL в формате https://github.com/myuser/myproject.git. Доступ к репозиторию должен быть публичным.

### URL HealthCheck
Описание: путь для проверки здоровья приложения внутри пода.
Пример значения: строка, путь, например /api/v1/health.

### Переменные окружения пода
Описание: структура данных, которая будет передана как переменные окружения в под.
Пример значения: ключ-значение, например {"ENV": "production"}.

---

## 3. Рекомендованные характеристики

### Тестовое окружение
- Квота ядра пода: 300m (0.3 ядра)
- Квота памяти пода: 256 MB
- Кол-во реплик пода: 1

### Промышленное окружение
- Квота ядра пода: от 1000m (1 ядро) в зависимости от нагрузки
- Квота памяти пода: от 1024 MB (1 GB) с учетом потребностей приложения
- Кол-во реплик пода: от 2 для обеспечения отказоустойчивости

---

## 4. Выходные параметры
Операция create не возвращает явных выходных параметров. Успешное выполнение операции приводит к развертыванию сервиса, доступного по указанному домену.

---

## 5. Дополнительная информация
- В корне проекта должен находиться файл requirements.txt со списком зависимостей Python.
- Исходный код веб-приложения должен располагаться в директории site.
- Запуск веб-сервера осуществляется командой python app.py.
- Используется версия Python: python:3.12-slim.
- Git-репозиторий должен быть публично доступен для платформы.
- Операция delete возможна только после suspend.
- Операция modify приводит к переразвертыванию с новыми параметрами.","operations":[{"svcOperationId":145,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Flask/","descr":null,"man":null},{"svcOperationId":146,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Flask/job/modify/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":89,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Flask/job/delete/job/master/buildWithParameters","descr":null,"man":"Удаление возможно только после остановки сервиса через операцию `suspend`
После выполнения операции необходимо выждать определенное кол-во времени"},{"svcOperationId":125,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Flask/","descr":null,"man":null},{"svcOperationId":88,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Flask/job/create/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/90.json b/artifacts/api-meta/dev/services/90.json new file mode 100644 index 0000000..c67850a --- /dev/null +++ b/artifacts/api-meta/dev/services/90.json @@ -0,0 +1 @@ +{"queryDurationMs":59,"svc":{"svcId":90,"svc":"PostgreSQL","svcShort":"postgres","code":"paas.pg.0","version":"master","orchestratorName":"Pgsql","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgsql/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":"https://upload.wikimedia.org/wikipedia/commons/2/29/Postgresql_elephant.svg","descr":"Управляемая база данных PostgreSQL","man":"# Инструкция по развертыванию PostgreSQL через платформу

---
## 1. Общая информация

PostgreSQL — это надёжная объектно-реляционная СУБД с открытым исходным кодом, поддерживающая расширенный набор функций, транзакции и хранение сложных типов данных. Развёртывание полностью автоматизировано платформой на базе Zalando Postgres Operator с использованием Kubernetes.

## Доступные операции

- **create** — Создание кластера
- **delete** — Удаление кластера
- **modify** — Модификация кластера
- **suspend** — Остановка кластера
- **resume** — Запуск кластера
- **restart** — Перезапуск кластера
- **recovery** — Восстановление из резервной копии

- **create_user** — Создание пользователя
- **delete_user** — Удаление пользователя

- **create_database** — Создание базы данных
- **delete_database** — Удаление базы данных


---
## 2. Параметры развертывания кластера

Ниже перечислены параметры, которые необходимо указать при создании ресурса PostgreSQL:

* **Платформа для развертывания:**
Платформа для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.

* **Количество узлов в сети:**
Количество инстансов (реплик) в кластере PostgreSQL. Пример: `2` (master + slave).

* **Квота (megabyte) памяти пода:**
Квота памяти пода в мегабайтах. Пример: `2048`

* **Квота (millicore) ядра пода:**
Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `1000`

* **Размер (gigabyte) диска для базы данных:**
Размер диска для хранения данных в гигабайтах. Пример: `20`

* **Выделяет внешний IP для доступа к master:**
Флаг, определяющий, нужно ли выделять внешний IP для доступа к master. Пример: `true` или `false`

* **Имя ipSpace для публикации внешнего IP master:**
Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`

* **Выделяет внешний IP для доступа к slave:**
Флаг для выделения внешнего IP для slave (реплики чтения). Работает, если slave присутствует в кластере.

* **Имя ipSpace для публикации внешнего IP slave:**
Если включен параметр для slave, то поле необходимо заполнить.

* **UUID экземпляра услуги S3:**
UUID экземпляра S3 для хранения резервных копий.

* **Версия PostgreSQL:**
Версия PostgreSQL для развертывания. Пример: `16`

* **Расписание бэкапов (ext_BACKUP_SCHEDULE):**
Необязательный. Cron-выражение для времени запуска бэкапов. По умолчанию: `0 0 * * *` (ежедневно в полночь).

* **Количество сохраняемых бэкапов (ext_BACKUP_NUM_TO_RETAIN):**
Необязательный. Количество сохраняемых бэкапов. По умолчанию: `7`

* **PgPooler (master / slave):**
Флаги включения PgBouncer для подключений на запись и чтение. При включении создаётся отдельный под.

* **Разрешить подключение без SSL (allowNoSSL):**
По умолчанию подключение с sslmode=require. При `true` разрешается подключение без SSL.

* **Автоскейлинг PV (autoScale):**
Включает автоскейлинг тома. Требует настройки autoScalePercentage, autoScaleTechWindow, autoScaleQuotaGb.

* **Дополнительные параметры PostgreSQL (jsonParameters):**
JSON с переменными конфигурации PostgreSQL. Документация: https://www.postgresql.org/docs/current/runtime-config.html

---
## 3. Выходные параметры

После успешного развертывания ресурса PostgreSQL платформа возвращает ряд параметров.

#### externalConnect

Внешние эндпоинты для подключения к кластеру:
- **master** — для операций записи (host: `write.${namespace}`, port: 5432)
- **slave** — для операций чтения (host: `read.${namespace}`, port: 5432)

Пример ответа платформы:

```json
{
"slave": {
"ip": "",
"fqdn": "",
"uuid": "",
"isExternal": false
},
"master": {
"ip": "<ip>",
"fqdn": "write.<namespace>.<cluster-domain>",
"uuid": "<uuid>",
"isExternal": false
}
}
```

Поля: `ip` — внешний IP; `fqdn` — полное имя хоста; `uuid` — идентификатор; `isExternal` — признак внешнего доступа.

#### internalConnect

Внутренние эндпоинты (FQDN) для подключения из других сервисов внутри той же сети Kubernetes.

Пример ответа платформы:

```json
{
"slave": "",
"master": {
"slave": "",
"master": {
"slave": "",
"master": "postgresqlk8s-master.<namespace>.svc.cluster.local"
}
}
}
```

Для подключения используйте значение `master.master.master` (host для записи) или соответствующее значение slave (host для чтения).

Для подключения используется порт **5432**.

---
## 4. Управление пользователями

### create_user — Создание пользователя

* **Имя пользователя (username):**
Имя создаваемого пользователя. Используется для подключения к базе и настройки прав.
Пример: `myapp_user`

* **Роль (role):**
Тип роли пользователя. Допустимые значения:
- `app_user` — базовые права для DML-операций (SELECT, INSERT, UPDATE, DELETE)
- `ddl_user` — расширенные права: createdb, createrole (управление базами и ролями)

Защищённые имена, которые нельзя использовать: `admin`, `postgres`, `standby`.

### delete_user — Удаление пользователя

* **Имя пользователя (username):**
Имя удаляемого пользователя. Пример: `myapp_user`

Пользователя нельзя удалить, если он является владельцем базы данных. Сначала удалите или передайте владение базами данных другому пользователю.

---
## 5. Управление базами данных

### create_database — Создание базы данных

* **Имя базы данных (dbName):**
Название создаваемой базы данных. Пример: `myapp_db`

* **Владелец базы данных (dbOwner):**
Имя пользователя-владельца базы. Должен существовать в кластере (создан через create_user). Пример: `myapp_user`

### delete_database — Удаление базы данных

* **Имя базы данных (dbName):**
Название удаляемой базы данных. Пример: `myapp_db`
","operations":[{"svcOperationId":241,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgsql/job/create_user/job/","descr":null,"man":null},{"svcOperationId":244,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgsql/job/delete_user/job/","descr":null,"man":null},{"svcOperationId":114,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgsql/job/suspend/job/","descr":null,"man":null},{"svcOperationId":115,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgsql/job/suspend/job/","descr":null,"man":null},{"svcOperationId":245,"operation":"create_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgsql/job/create_database/job/","descr":null,"man":null},{"svcOperationId":54,"operation":"restart","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgsql/job/restart/job/master/buildWithParameters","descr":"ВНИМАНИЕ - Редеплой предполагает УДАЛЕНИЕ подов.
Может быть полная поломка. Крайне осторожно запускать при работе.
Нет возможности нормально мигрировать на другую платформу средствами Redeploy, так как есть привязка к S3.
Поэтому если нужно смигрировать на другой кластер Kubernetes - использовать необходимо Restore","man":"ВНИМАНИЕ - Рестарт предполагает УДАЛЕНИЕ подов.
Может быть полная поломка. Крайне осторожно запускать при работе"},{"svcOperationId":246,"operation":"delete_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgsql/job/delete_database/job/","descr":null,"man":null},{"svcOperationId":19,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgsql/job/create/job/master/buildWithParameters","descr":"описание","man":"руководство"},{"svcOperationId":20,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgsql/job/delete/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":48,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgsql/job/modify/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":47,"operation":"recovery","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgsql/job/recovery/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/91.json b/artifacts/api-meta/dev/services/91.json new file mode 100644 index 0000000..e23123f --- /dev/null +++ b/artifacts/api-meta/dev/services/91.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svc":{"svcId":91,"svc":"Redis","svcShort":"redis","code":null,"version":"master","orchestratorName":"Redis","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Redis/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":"https://www.svgrepo.com/download/303460/redis-logo.svg","descr":"Управляемая база данных Redis","man":"Redis кластер. Под кеши.
Ресурсная платформа: k8s.
Автоматизация: k8s operator
port 6379","operations":[{"svcOperationId":22,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Redis/job/delete/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":21,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Redis/job/create/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/92.json b/artifacts/api-meta/dev/services/92.json new file mode 100644 index 0000000..f5c7b86 --- /dev/null +++ b/artifacts/api-meta/dev/services/92.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svc":{"svcId":92,"svc":"MongoDB","svcShort":"mongodb","code":"paas.mngo.0","version":"master","orchestratorName":"MongoDB","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/MongoDB/job/create/job/","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Управляемая база данных MongoDB","man":"# Инструкция по развертыванию MongoDB через платформу

## 1. Общая информация

MongoDB — документоориентированная распределённая база данных, обеспечивающая высокую доступность, горизонтальное масштабирование и гибкую модель хранения.

### Доступные операции с кластером

* **create** — создание базы
* **delete** — удаление базы данных
* **suspend** — остановка базы данных
* **resume** — запуск базы данных
* **modify** — изменение базы данных

### Доступные операции с пользователями

* **create_user** — создание пользователя
* **modify_user** — модификация пользователя
* **delete_user** — удаление пользователя

---

## 2. Параметры развертывания базы данных

Эти параметры необходимо указать при создании базы данных.

### Платформа для развертывания

Среда, в которой будет развернут кластер. Выбирается из предложенного списка.

### Количество узлов

Оптимально выбирать нечётное количество узлов в кластере MongoDB, так как это обеспечивает корректный процесс выбора ведущего узла и сохраняет работоспособность базы данных даже при отказе одной из нод.

### Квота памяти пода (MB)

Объём памяти для одного пода в мегабайтах.
Пример: `2048`

### Квота CPU пода (mCPU)

CPU-квота для пода в миликорах (1000 mCPU = 1 vCPU).
Пример: `1000`

### Размер диска для базы данных (GB)

Объём диска для хранения данных в гигабайтах.
Пример: `20`

### Выделение внешнего IP для доступа к master

Флаг, определяющий необходимость выделения внешнего IP.
Допустимые значения: `true` или `false`

### Имя ipSpace для публикации внешнего IP

Указывается только если включено выделение внешнего IP.
Пример: `internet-no-antiddos-v1`

---

## 3. Параметры модификации базы данных

Все параметры, которые вы указываете при модификации, являются необязательными — система автоматически подставит ранее сохранённые значения, и при необходимости вы можете изменить их на нужные.

### Количество узлов

Оптимально выбирать нечётное количество узлов в кластере MongoDB, так как это обеспечивает корректный процесс выбора ведущего узла и сохраняет работоспособность базы данных даже при отказе одной из нод.

### Квота памяти пода (MB)

Объём памяти для одного пода в мегабайтах.
Пример: `2048`

### Квота CPU пода (mCPU)

CPU-квота для пода в миликорах (1000 mCPU = 1 vCPU).
Пример: `1000`

### Размер диска для базы данных (GB)

Объём диска для хранения данных указывается в гигабайтах. Его можно увеличить при необходимости, однако уменьшить уже выделенный размер невозможно.
Пример: `20`

### Выделение внешнего IP для доступа к master

Флаг, определяющий необходимость выделения внешнего IP.
Допустимые значения: `true` или `false`

### Имя ipSpace для публикации внешнего IP

Указывается только если включено выделение внешнего IP.
Пример: `internet-no-antiddos-v1`

---

## 3. Параметры создания пользователя

### Имя пользователя

Указывается имя пользователя (любой регистр).
Пример: `readApp`

### Имя базы данных

Название базы, в которой будет создан пользователь.
Если база отсутствует, она будет создана автоматически.
Пример: `Apps_9392`

### Имя роли

* **read** — доступ только на чтение
* **readWrite** — чтение и изменение данных
* **dbOwner** — полный контроль над базой данных

---

## 4. Параметры модификации пользователя

### Имя пользователя

Необходимо выбрать существующего пользователя.
Если список пуст, требуется предварительно создать пользователя.

### Имя базы данных

База данных, к которой относится пользователь.
Если база отсутствует, она будет создана автоматически.
Пример: `Apps_9392`

### Имя роли

* **read**
* **readWrite**
* **dbOwner**

---

## 5. Параметры удаления пользователя

### Имя пользователя

Выберите пользователя из списка для удаления.

---

## 6. Выходные параметры

После успешного развертывания базы данных платформа возвращает ключевые параметры.

### internalConnect

Внутренний эндпоинт для подключения к кластеру из сервисов, работающих в той же сети.
Используется для внутренних интеграций и системных сервисов.

### externalConnect

Внешний FQDN для подключения к кластеру извне.
Порт подключения — **27017**.

---

## 7. Пример подключения

Перед подключением необходимо установить **mongosh**.

Команда подключения к базе данных:

```
mongosh "mongodb://<username>:<password>@<endpoint_db>:27017/<dbName>"
```

Где:

* `<username>` — имя пользователя
* `<password>` — пароль
* `<endpoint_db>` — internalConnect или externalConnect
* `<dbName>` — имя базы данных

## 8. Дополнительная информация

Сейчас соединение с базой работает без шифрования, и доступ к кластеру осуществляется только по логину и паролю.","operations":[{"svcOperationId":190,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/MongoDB/job/delete/job/","descr":null,"man":null},{"svcOperationId":198,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/MongoDB/job/create_user/job/","descr":null,"man":null},{"svcOperationId":37,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/MongoDB/job/create/job/","descr":null,"man":null},{"svcOperationId":199,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/MongoDB/job/delete_user/job/","descr":null,"man":null},{"svcOperationId":200,"operation":"modify_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/MongoDB/job/modify_user/job/","descr":null,"man":null},{"svcOperationId":201,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/MongoDB/job/modify/job/","descr":null,"man":null},{"svcOperationId":194,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/MongoDB/job/suspend/job/","descr":null,"man":null},{"svcOperationId":196,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/MongoDB/job/resume/job/","descr":null,"man":null}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/93.json b/artifacts/api-meta/dev/services/93.json new file mode 100644 index 0000000..21348ec --- /dev/null +++ b/artifacts/api-meta/dev/services/93.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svc":{"svcId":93,"svc":"RabbitMQ","svcShort":"rabbitmq","code":null,"version":"master","orchestratorName":"Rabbitmq","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Rabbitmq/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":"https://www.svgrepo.com/download/354250/rabbitmq-icon.svg","descr":"Сервер очередей","man":"# Инструкция по развертыванию RabbitMQ через платформу

---
## 1. Общая информация
RabbitMQ — это брокер сообщений с открытым исходным кодом, который обеспечивает надёжную доставку сообщений между приложениями.
Позволяет надёжно передавать сообщения между сервисами и системами, интегрироваться с внешними решениями и использовать как внутренние, так и защищённые TLS-подключения. Развёртывание полностью автоматизировано платформой.

## Доступные операции
- **create** — Создание кластера
- **modify** — Изменение параметров кластера
- **delete** — Удаление кластера
- **suspend** — Остановка кластера
- **resume** — Запуск кластера


---
## 2. Параметры развертывания кластера
Ниже перечислены параметры, которые необходимо указать при создании ресурса RabbitMQ:

* **Платформа для развертывания:**
Платформа для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.

* **Количество узлов в сети:**
Количество реплик в кластере RabbitMQ. При значении больше 1 создаётся кластер с репликацией для обеспечения высокой доступности.
Пример: `1` (single node) или `3` (кластер с репликацией)

* **Квота (megabyte) памяти пода:**
Квота памяти пода в мегабайтах. Пример: `2048`

* **Квота (millicore) ядра пода:**
Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `1000`

* **Размер (gigabyte) диска для базы данных:**
Размер диска для хранения данных RabbitMQ в гигабайтах. Пример: `50`

* **Выделяет внешний IP для доступа к master:**
Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-узлу. При включении создаётся Service типа LoadBalancer и настраивается VIP на порту 5672.
Пример: `true` или `false`

* **Имя ipSpace для публикации внешнего IP master:**
Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`


---
## 3. Модификация кластера
Операция **modify** позволяет изменить параметры существующего кластера RabbitMQ.

**Изменяемые параметры:**
* **Квота (megabyte) памяти пода** — можно увеличить или уменьшить
* **Квота (millicore) ядра пода** — можно увеличить или уменьшить
* **Размер (gigabyte) диска для базы данных** — можно только увеличить (уменьшение не поддерживается)
* **Количество узлов в сети** — можно только увеличить (уменьшение не поддерживается)
* **Выделяет внешний IP для доступа к master** — можно включить или выключить
* **Имя ipSpace для публикации внешнего IP master** — можно изменить при включенном внешнем IP

**Ограничения:**
* Уменьшение размера диска не поддерживается
* Уменьшение количества реплик не поддерживается

---
## 4. Выходные параметры
После успешного развертывания ресурса RabbitMQ платформа возвращает ряд параметров в разделе "Поля состояния (сгенерированные значения)":

**clusterDomain**
Домен кластера Kubernetes, в котором развернут RabbitMQ.
Пример: `cluster.local`

**inernalConnect**
Внутренние эндпоинты для подключения к кластеру RabbitMQ из других сервисов, развернутых внутри той же сети.
Содержит:
* **master** — FQDN для подключения к кластеру. Пример: `rabbitmqk8s.{namespace}.svc.{clusterDomain}`

**externalConnect**
Внешние эндпоинты для подключения к кластеру RabbitMQ извне.
Содержит объекты с полями:
* **admin** — доступ к веб-интерфейсу управления:
* `fqdn` — полное доменное имя для веб-интерфейса. Пример: `admin.{namespace}.{domain}`
* `ip` — IP-адрес
* **master** — доступ к AMQP протоколу (если включен внешний IP):
* `fqdn` — полное доменное имя для AMQP. Пример: `write.{namespace}.{domain}`
* `ip` — IP-адрес

**monitoring**
Информация о дашбордах мониторинга:
* **allDashboards** — URL для доступа ко всем дашбордам Grafana

Для подключения используются следующие порты:

* **5672** — AMQP протокол (внутренний и внешний доступ, если включен внешний IP)
* **15672** — веб-интерфейс управления (доступен через Ingress по HTTPS)

**Учётные данные**
Данные для подключения к RabbitMQ доступны в разделе "Учётные данные":
* **adminUser** — имя пользователя администратора
* **adminPass** — пароль администратора


---
## 5. Примеры подключения через консоль (rabbitmqadmin)

### Работа с очередями через rabbitmqadmin

Для работы с RabbitMQ через консоль используется утилита `rabbitmqadmin`. Установите её или используйте образ с предустановленной утилитой.

Задайте переменные окружения с учётными данными:

```bash
export RABBITMQ_USERNAME=<adminUser>
export RABBITMQ_PASSWORD=<adminPass>
export RABBIT_HOST=<host>
```

Где:
* `<adminUser>` и `<adminPass>` — учётные данные из раздела "Учётные данные"
* `<host>` — адрес для подключения:
* Для внешнего подключения: `externalConnect.admin.fqdn` или `externalConnect.master.fqdn`

**Создание очереди:**

```bash
rabbitmqadmin \\
-H "$RABBIT_HOST" -P 15672 \\
-u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \\
declare queue name=healthcheck durable=false
```

**Листинг очередей:**

```bash
rabbitmqadmin \\
-H "$RABBIT_HOST" -P 15672 \\
-u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \\
list queues
```

**Отправка сообщения:**

```bash
rabbitmqadmin \\
-H "$RABBIT_HOST" -P 15672 \\
-u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \\
publish exchange=amq.default routing_key=healthcheck payload="ping-$(date +%s)"
```

**Чтение сообщения:**

```bash
rabbitmqadmin \\
-H "$RABBIT_HOST" -P 15672 \\
-u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \\
get queue=healthcheck ackmode=ack_requeue_false
```

---
## 6. Дополнительная информация
Для подключения к кластеру RabbitMQ используйте полученные эндпоинты из раздела "Поля состояния (сгенерированные значения)" и учётные данные из раздела "Учётные данные".

Веб-интерфейс управления доступен по адресу, указанному в параметре `externalConnect.admin.fqdn` через HTTPS.

Для внутреннего подключения используйте адрес из `inernalConnect.master` на порту 5672.

---","operations":[{"svcOperationId":116,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Rabbitmq/job/suspend/job/buildWithParameters","descr":"Остановка сервиса путем применения манифеста с нолевой репликой","man":"Пока не работает из за того что RabbitmqCluster нельзя занулить"},{"svcOperationId":117,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Rabbitmq/job/resume/job/","descr":null,"man":null},{"svcOperationId":38,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Rabbitmq/job/create/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":39,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Rabbitmq/job/delete/job/master/buildWithParameters","descr":"Для удаления нужно подождать 15 мин или зайти в состояние suspend и поправить время на 15 мин назад","man":null},{"svcOperationId":106,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Rabbitmq/job/modify/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/94.json b/artifacts/api-meta/dev/services/94.json new file mode 100644 index 0000000..d87d790 --- /dev/null +++ b/artifacts/api-meta/dev/services/94.json @@ -0,0 +1 @@ +{"queryDurationMs":47,"svc":{"svcId":94,"svc":"Lucee","svcShort":"lucee","code":null,"version":"master","orchestratorName":"Lucee","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Lucee/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Cервер приложений","man":null,"operations":[{"svcOperationId":163,"operation":"restart","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Lucee/job/restart/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":53,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Lucee/job/redeploy/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":50,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Lucee/job/delete/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":49,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Lucee/job/create/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":55,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Lucee/job/modify/job/master/buildWithParameters","descr":"Если CFS оставить пустым, то при запуске джобы берётся параметр из instanceData","man":"Если CFS оставить пустым, то при запуске джобы берётся параметр из instanceData"},{"svcOperationId":96,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Lucee/job/suspend/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":95,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Lucee/job/resume/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/95.json b/artifacts/api-meta/dev/services/95.json new file mode 100644 index 0000000..40a4926 --- /dev/null +++ b/artifacts/api-meta/dev/services/95.json @@ -0,0 +1 @@ +{"queryDurationMs":108,"svc":{"svcId":95,"svc":"NodeJS","svcShort":"nodejs","code":null,"version":"master","orchestratorName":"Node","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nodejs/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":"https://icon.icepanel.io/Technology/svg/Node.js.svg","descr":"Cервер приложений","man":"Развертывает контейнер в k8s кластере с node, который можно использовать для запуска своих приложений.
Приложение должно быть доступно по ссылки в git репозитории, которая является входным параметром.","operations":[{"svcOperationId":59,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nodejs/job/modify/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":58,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nodejs/job/create/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":120,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Node/job/suspend/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":121,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Node/job/resume/job/","descr":null,"man":null},{"svcOperationId":61,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nodejs/job/delete/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":60,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Nodejs/job/redeploy/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":108} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/96.json b/artifacts/api-meta/dev/services/96.json new file mode 100644 index 0000000..8142a75 --- /dev/null +++ b/artifacts/api-meta/dev/services/96.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svc":{"svcId":96,"svc":"pgAdmin","svcShort":"pgadmin","code":null,"version":"master","orchestratorName":"Pgadmin","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgadmin/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Административный интерфейс для PostgreSQL","man":"Инструмент с графическим интерфейсом для управления базами данных PostgreSQL","operations":[{"svcOperationId":122,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgadmin/job/suspend/job/","descr":null,"man":null},{"svcOperationId":123,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgadmin/job/resume/job/","descr":null,"man":null},{"svcOperationId":62,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgadmin/job/create/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":63,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgadmin/job/delete/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":65,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgadmin/job/redeploy/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":64,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Pgadmin/job/modify/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/97.json b/artifacts/api-meta/dev/services/97.json new file mode 100644 index 0000000..4452d1a --- /dev/null +++ b/artifacts/api-meta/dev/services/97.json @@ -0,0 +1 @@ +{"queryDurationMs":47,"svc":{"svcId":97,"svc":"NodeRed","svcShort":"nodered","code":null,"version":"master","orchestratorName":"NodeRed","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/NodeRed/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":"https://nodered.org/about/resources/media/node-red-icon.svg","descr":"Low-code платформа для IoT","man":null,"operations":[{"svcOperationId":73,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/NodeRed/job/delete/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":72,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/NodeRed/job/create/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":47} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/98.json b/artifacts/api-meta/dev/services/98.json new file mode 100644 index 0000000..d1b320d --- /dev/null +++ b/artifacts/api-meta/dev/services/98.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svc":{"svcId":98,"svc":"Простой HTTP контейнер","svcShort":"http","code":null,"version":"master","orchestratorName":"SimpleHttpContainer","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SimpleHttpContainer/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":null,"man":null,"operations":[{"svcOperationId":130,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SimpleHttpContainer/job/resume/job/","descr":null,"man":null},{"svcOperationId":131,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SimpleHttpContainer/job/suspend/job/","descr":null,"man":null},{"svcOperationId":77,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SimpleHttpContainer/job/create/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":81,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SimpleHttpContainer/job/modify/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":79,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SimpleHttpContainer/job/redeploy/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":78,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/SimpleHttpContainer/job/delete/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/dev/services/99.json b/artifacts/api-meta/dev/services/99.json new file mode 100644 index 0000000..608113c --- /dev/null +++ b/artifacts/api-meta/dev/services/99.json @@ -0,0 +1 @@ +{"queryDurationMs":115,"svc":{"svcId":99,"svc":"Gitea","svcShort":"gitea","code":null,"version":"master","orchestratorName":"Gitea","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Gitea/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":"https://www.svgrepo.com/download/349372/gitea.svg","descr":"Сервис контроля версий","man":"Развертывает сервис контроля версий Gitea
Зависит от сервиса postgresql который должен быть развернут заранее.","operations":[{"svcOperationId":83,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Gitea/job/delete/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":91,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Gitea/job/modify/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":82,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Gitea/job/create/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":126,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Gitea/job/suspend/job/","descr":null,"man":null},{"svcOperationId":127,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Gitea/job/resume/job/","descr":null,"man":null}]},"runDurationMs":115} \ No newline at end of file diff --git a/artifacts/api-meta/prod/STATUS.txt b/artifacts/api-meta/prod/STATUS.txt new file mode 100644 index 0000000..5faede0 --- /dev/null +++ b/artifacts/api-meta/prod/STATUS.txt @@ -0,0 +1 @@ +done 2026-02-18T10:54:52Z diff --git a/artifacts/api-meta/prod/operations/1.list b/artifacts/api-meta/prod/operations/1.list new file mode 100644 index 0000000..b13a334 --- /dev/null +++ b/artifacts/api-meta/prod/operations/1.list @@ -0,0 +1,6 @@ +redeploy 240 +delete 71 +suspend 93 +create 18 +modify 92 +resume 94 diff --git a/artifacts/api-meta/prod/operations/1/18.json b/artifacts/api-meta/prod/operations/1/18.json new file mode 100644 index 0000000..f9a7a55 --- /dev/null +++ b/artifacts/api-meta/prod/operations/1/18.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":18,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/dummy/job/Service/job/create/view/tags/job/1.0.2/buildWithParameters","descr":"Это описание операции CREATE сервиса Болванка","man":"Это мануал к операции CREATE сервиса Болванка","cfsParams":[{"svcOperationCfsParamId":242,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование ресурсной платформы для подключения","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":198,"svcOperationCfsParam":"durationMs","label":null,"dataType":"integer >= 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"перед завершением подождать (sleep) столько миллисекунд","man":"перед завершением подождать (sleep) столько миллисекунд","sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":199,"svcOperationCfsParam":"failAtStart","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"если true, завершить джоб, ничего не записывая в cmdb","man":"**Операция не будет завершена**
Она будет в постоянном статусе PENDING, однако в Jenkins Job завершится с ошибкой","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":200,"svcOperationCfsParam":"failInProgress","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"если true, корректно начать выполнение джоба, но в процессе завершить аварийно, ничего не записывая в cmdb","man":"если true, корректно начать выполнение джоба, но в процессе завершить аварийно, ничего не записывая в cmdb","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":201,"svcOperationCfsParam":"whereFail","label":null,"dataType":"integer > 0","valueList":["1","2","3"],"refSvcId":null,"isRequired":false,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write","man":"принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":286,"svcOperationCfsParam":"bodymessage","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Дата, уходящая в Vault","man":"Дата, уходящая в Vault","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":321,"svcOperationCfsParam":"mapExample","label":null,"dataType":"map","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":322,"svcOperationCfsParam":"jsonExample","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Для тестирования интерфейса","man":"Для тестирования интерфейса. Сюда можно писать корректный json","sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":396,"svcOperationCfsParam":"nestedRefExample","label":null,"dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":447,"svcOperationCfsParam":"yamlExample","label":"Пример yaml","dataType":"yaml","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":647,"svcOperationCfsParam":"mapFixed","label":null,"dataType":"map-fixed","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Новый тип поля","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":654,"svcOperationCfsParam":"arrayMapFixedExample","label":null,"dataType":"array-map-fixed","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Array of map-fixed","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/1/240.json b/artifacts/api-meta/prod/operations/1/240.json new file mode 100644 index 0000000..c716418 --- /dev/null +++ b/artifacts/api-meta/prod/operations/1/240.json @@ -0,0 +1 @@ +{"queryDurationMs":59,"svcOperation":{"svcOperationId":240,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/dummy/job/Service/job/redeploy/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/1/71.json b/artifacts/api-meta/prod/operations/1/71.json new file mode 100644 index 0000000..b20bc93 --- /dev/null +++ b/artifacts/api-meta/prod/operations/1/71.json @@ -0,0 +1 @@ +{"queryDurationMs":63,"svcOperation":{"svcOperationId":71,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/dummy/job/Service/job/delete/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":63} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/1/92.json b/artifacts/api-meta/prod/operations/1/92.json new file mode 100644 index 0000000..429ef06 --- /dev/null +++ b/artifacts/api-meta/prod/operations/1/92.json @@ -0,0 +1 @@ +{"queryDurationMs":61,"svcOperation":{"svcOperationId":92,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/dummy/job/Service/job/modify/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":287,"svcOperationCfsParam":"durationMs","label":null,"dataType":"integer >= 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"перед завершением подождать (sleep) столько миллисекунд","man":"перед завершением подождать (sleep) столько миллисекунд","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":288,"svcOperationCfsParam":"failAtStart","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"если true, завершить джоб, ничего не записывая в cmdb","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":289,"svcOperationCfsParam":"failInProgress","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"если true, корректно начать выполнение джоба, но в процессе завершить аварийно, ничего не записывая в cmdb","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":290,"svcOperationCfsParam":"whereFail","label":null,"dataType":"integer > 0","valueList":["1","2","3"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write","man":"принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":291,"svcOperationCfsParam":"bodymessage","label":null,"dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Дата, уходящая в Vault","man":"Дата, уходящая в Vault","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":373,"svcOperationCfsParam":"mapExample","label":"mapExample","dataType":"map","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"{}","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":374,"svcOperationCfsParam":"jsonExample","label":"jsonExample","dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":62} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/1/93.json b/artifacts/api-meta/prod/operations/1/93.json new file mode 100644 index 0000000..861fe79 --- /dev/null +++ b/artifacts/api-meta/prod/operations/1/93.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":93,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/dummy/job/Service/job/suspend/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/1/94.json b/artifacts/api-meta/prod/operations/1/94.json new file mode 100644 index 0000000..dbe38a7 --- /dev/null +++ b/artifacts/api-meta/prod/operations/1/94.json @@ -0,0 +1 @@ +{"queryDurationMs":69,"svcOperation":{"svcOperationId":94,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/dummy/job/Service/job/resume/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":69} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/100.list b/artifacts/api-meta/prod/operations/100.list new file mode 100644 index 0000000..066a39e --- /dev/null +++ b/artifacts/api-meta/prod/operations/100.list @@ -0,0 +1,2 @@ +delete 42 +create 41 diff --git a/artifacts/api-meta/prod/operations/100/41.json b/artifacts/api-meta/prod/operations/100/41.json new file mode 100644 index 0000000..50bf040 --- /dev/null +++ b/artifacts/api-meta/prod/operations/100/41.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svcOperation":{"svcOperationId":41,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesProd/job/k8s/job/tenantOpenwhisk/job/serviceCreate/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":64,"svcOperationCfsParam":"username","label":"Имя пользователя Openwhisk","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя пользователя Openwhisk","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":863,"svcOperationCfsParam":"resourceRealm","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Ресурсная платформа","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":58} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/100/42.json b/artifacts/api-meta/prod/operations/100/42.json new file mode 100644 index 0000000..22bbd9b --- /dev/null +++ b/artifacts/api-meta/prod/operations/100/42.json @@ -0,0 +1 @@ +{"queryDurationMs":63,"svcOperation":{"svcOperationId":42,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesProd/job/k8s/job/tenantOpenwhisk/job/serviceDelete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":65,"svcOperationCfsParam":"username","label":"Имя пользователя Openwhisk","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя пользователя Openwhisk","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":63} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/110.list b/artifacts/api-meta/prod/operations/110.list new file mode 100644 index 0000000..b4f7f00 --- /dev/null +++ b/artifacts/api-meta/prod/operations/110.list @@ -0,0 +1,2 @@ +create 43 +delete 44 diff --git a/artifacts/api-meta/prod/operations/110/43.json b/artifacts/api-meta/prod/operations/110/43.json new file mode 100644 index 0000000..9daef26 --- /dev/null +++ b/artifacts/api-meta/prod/operations/110/43.json @@ -0,0 +1 @@ +{"queryDurationMs":73,"svcOperation":{"svcOperationId":43,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/powerdns/job/Zones/job/create/view/tags/job/1.0.3/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":66,"svcOperationCfsParam":"zoneEmail","label":"Контактный e-mail","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Контактный e-mail","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":67,"svcOperationCfsParam":"zoneName","label":"Имя зоны","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^([a-z0-9-]+\\.)+[a-z0-9-]+$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя зоны","man":"Имя зоны","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":68,"svcOperationCfsParam":"zoneKind","label":"Тип зоны","dataType":"string","valueList":["NATIVE","SLAVE"],"refSvcId":null,"isRequired":true,"defaultValue":"NATIVE","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Тип зоны","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":69,"svcOperationCfsParam":"zoneMastersForSlave","label":"Мастер-сервера (kind: SLAVE)","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Использовать если выбран тип SLAVE. IP адреса в формате через пробел для настройки Master-серверов","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":70,"svcOperationCfsParam":"zoneTimeToRefresh","label":"Time To Refresh","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"86400","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Время ожидания ответа вторичного DNS перед запросом SOA-записи с первичных серверов","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":71,"svcOperationCfsParam":"zoneTimeToRetry","label":"Time To Retry","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"7200","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Время в течение которого сервер повторно попробует синхронизировать информацию с первичных DNS-серверов","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":72,"svcOperationCfsParam":"zoneTimeToExpire","label":"Time To Expire","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"3600000","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Время в течение которого вторичный DNS будет пытаться завершить синхронизацию зоны с первичным","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":73,"svcOperationCfsParam":"zoneTimeToLive","label":"Time To Live","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"86400","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Время, в течение которого информация будет кешироваться другими DNS-серверами","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":284,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":74} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/110/44.json b/artifacts/api-meta/prod/operations/110/44.json new file mode 100644 index 0000000..ecf377f --- /dev/null +++ b/artifacts/api-meta/prod/operations/110/44.json @@ -0,0 +1 @@ +{"queryDurationMs":71,"svcOperation":{"svcOperationId":44,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/powerdns/job/Zones/job/delete/view/tags/job/1.0.3/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":71} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/111.list b/artifacts/api-meta/prod/operations/111.list new file mode 100644 index 0000000..7d8e9e8 --- /dev/null +++ b/artifacts/api-meta/prod/operations/111.list @@ -0,0 +1,3 @@ +delete 46 +create 45 +modify 90 diff --git a/artifacts/api-meta/prod/operations/111/45.json b/artifacts/api-meta/prod/operations/111/45.json new file mode 100644 index 0000000..4d34a67 --- /dev/null +++ b/artifacts/api-meta/prod/operations/111/45.json @@ -0,0 +1 @@ +{"queryDurationMs":65,"svcOperation":{"svcOperationId":45,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/powerdns/job/Records/job/create/view/tags/job/1.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":75,"svcOperationCfsParam":"zoneUid","label":"UUID Зоны","dataType":"uuid","valueList":null,"refSvcId":110,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID экземпляра услуги DNS-зоны","man":"UUID экземпляра услуги DNS-зоны","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":76,"svcOperationCfsParam":"recordType","label":"Тип DNS-записи","dataType":"string","valueList":["A","AAAA","CNAME","MX","PTR","SOA","SRV","TXT","LUA","NS","SSHFP"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Тип DNS-записи","man":"Тип DNS-записи","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":77,"svcOperationCfsParam":"recordName","label":"Имя записи","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":"parent","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя записи. Имя зоны в конце проставляется автоматически","man":"Имя записи. Имя зоны в конце проставляется автоматически","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":78,"svcOperationCfsParam":"recordInput","label":"Значение записи","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Значение. Необходима валидация, в зависимости от типа записи. Должно быть заменено на UUID-внешнийIP","man":"Значение. Необходима валидация, в зависимости от типа записи. Должно быть заменено на UUID-внешнийIP","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":450,"svcOperationCfsParam":"recordTTL","label":"TTL записи (в секундах)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"3600","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":604800,"minvalue":30,"descr":"Time-to-Leave записи. Раз в какое время запись будет обновлена","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":65} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/111/46.json b/artifacts/api-meta/prod/operations/111/46.json new file mode 100644 index 0000000..41e84cc --- /dev/null +++ b/artifacts/api-meta/prod/operations/111/46.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svcOperation":{"svcOperationId":46,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/powerdns/job/Records/job/delete/view/tags/job/1.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":58} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/111/90.json b/artifacts/api-meta/prod/operations/111/90.json new file mode 100644 index 0000000..27a8ed3 --- /dev/null +++ b/artifacts/api-meta/prod/operations/111/90.json @@ -0,0 +1 @@ +{"queryDurationMs":68,"svcOperation":{"svcOperationId":90,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/powerdns/job/Records/job/modify/view/tags/job/1.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":256,"svcOperationCfsParam":"recordInput","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Запись. Необходима валидация, в зависимости от типа записи. Должно быть заменено на UUID-внешнийIP","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":68} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/112.list b/artifacts/api-meta/prod/operations/112.list new file mode 100644 index 0000000..79b614c --- /dev/null +++ b/artifacts/api-meta/prod/operations/112.list @@ -0,0 +1,3 @@ +modify 87 +create 84 +delete 86 diff --git a/artifacts/api-meta/prod/operations/112/84.json b/artifacts/api-meta/prod/operations/112/84.json new file mode 100644 index 0000000..0cb0e41 --- /dev/null +++ b/artifacts/api-meta/prod/operations/112/84.json @@ -0,0 +1 @@ +{"queryDurationMs":59,"svcOperation":{"svcOperationId":84,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/grafana/job/Tenant/job/create/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":239,"svcOperationCfsParam":"grafanaOrgName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^WZ[\\d]+$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"WZ-Код клиента","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":240,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":60} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/112/86.json b/artifacts/api-meta/prod/operations/112/86.json new file mode 100644 index 0000000..2c9af22 --- /dev/null +++ b/artifacts/api-meta/prod/operations/112/86.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":86,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/grafana/job/Tenant/job/delete/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/112/87.json b/artifacts/api-meta/prod/operations/112/87.json new file mode 100644 index 0000000..8cd5c37 --- /dev/null +++ b/artifacts/api-meta/prod/operations/112/87.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":87,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/grafana/job/Tenant/job/modify/view/tags/job/0.0.7/buildWithParameters","descr":"Просто удаляет все текущие датасоурсы и ставит их заново
Полезно, когда нужно "ресетнуть" / "добавить"","man":"Просто удаляет все текущие датасоурсы и ставит их заново
Полезно, когда нужно "ресетнуть" / "добавить"","cfsParams":[]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/113.list b/artifacts/api-meta/prod/operations/113.list new file mode 100644 index 0000000..3be4518 --- /dev/null +++ b/artifacts/api-meta/prod/operations/113.list @@ -0,0 +1 @@ +create 107 diff --git a/artifacts/api-meta/prod/operations/113/107.json b/artifacts/api-meta/prod/operations/113/107.json new file mode 100644 index 0000000..763870f --- /dev/null +++ b/artifacts/api-meta/prod/operations/113/107.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":107,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Complex/job/create/view/tags/job/0.0.5/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":332,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование ресурсной платформы","sort":1,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":334,"svcOperationCfsParam":"vappName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя vApp","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":401,"svcOperationCfsParam":"cpuGuaranteed","label":null,"dataType":"integer > 0","valueList":["20","50","80"],"refSvcId":null,"isRequired":true,"defaultValue":"20","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":566,"svcOperationCfsParam":"cpuAllocated","label":"Сколько аллоцировать на VDC ЯДЕР","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1,"descr":"шт","man":null,"sort":21,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":402,"svcOperationCfsParam":"memGuaranteed","label":null,"dataType":"integer > 0","valueList":["20","50","80"],"refSvcId":null,"isRequired":true,"defaultValue":"20","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":567,"svcOperationCfsParam":"memAllocated","label":"Сколько аллоцировать на VDC ОЗУ","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1,"descr":"gb","man":null,"sort":31,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":404,"svcOperationCfsParam":"needExternalAddressSNAT","label":"Выделить VIP для SNAT","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP на Edge. Используется для SNAT всего трафика","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":405,"svcOperationCfsParam":"needEnableAVI","label":"Включить ALB","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает AVI в Cloud Director","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":403,"svcOperationCfsParam":"segroupName","label":"Наименование segroup","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"SEGROUP-SANDBOX-CL1-SHARED-01","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Наименование segroup, в котором будут выделяться пулы на AVI","man":null,"sort":100,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":359,"svcOperationCfsParam":"virtualServicesCount","label":"Кол-во VS на AVI","dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4,"minvalue":1,"descr":"Кол-во виртуальных сервисов, которые выделяются на AVI. Во избежании коллапса пока выделяется до 4","man":null,"sort":110,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":400,"svcOperationCfsParam":"vdcNetworkPool","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"nsxt-sandbox-geneve-np","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":120,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":360,"svcOperationCfsParam":"ipSpaceName","label":"ip Space для VIP","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"internet-ipv4-v1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ip Space для внешнего IP. Целесообразнее брать самый дешёвый, так как это vip для исходящего трафика. Необходимо задавать если включен needExternalAddressSNAT","man":null,"sort":130,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":568,"svcOperationCfsParam":"vIPCount","label":"Кол-во зарезервированных внешних Ip","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":20,"minvalue":0,"descr":"ш","man":null,"sort":131,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":358,"svcOperationCfsParam":"vdcProviderGateway","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"sandbox-v1cl1-pvdc","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Взять из свойств ресурсной платформы.
Путь .vcd.providerVdc - взять KEY

providerGateway Cloud Director. Влияет ресурсы будут предоставлены. Является полем (List<String>) в свойствах рес. платформы ЛК, но сам параметр передаётся только как один String","man":null,"sort":200,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":399,"svcOperationCfsParam":"storageConfig","label":"Конфигурация Storage","dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[{\"name\": \"\", \"size\": 1024}]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Описывается как массив объектов, где описывается имя политики и её размер","man":null,"sort":210,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/114.list b/artifacts/api-meta/prod/operations/114.list new file mode 100644 index 0000000..e69de29 diff --git a/artifacts/api-meta/prod/operations/115.list b/artifacts/api-meta/prod/operations/115.list new file mode 100644 index 0000000..ef5fe3b --- /dev/null +++ b/artifacts/api-meta/prod/operations/115.list @@ -0,0 +1,5 @@ +modify 142 +resume 141 +create 138 +suspend 140 +delete 139 diff --git a/artifacts/api-meta/prod/operations/115/138.json b/artifacts/api-meta/prod/operations/115/138.json new file mode 100644 index 0000000..0577c31 --- /dev/null +++ b/artifacts/api-meta/prod/operations/115/138.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svcOperation":{"svcOperationId":138,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Mariadb/job/create/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":422,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":459,"svcOperationCfsParam":"s3Uid","label":"Услуга S3 для резервных копий","dataType":"uuid","valueList":null,"refSvcId":12,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Экземпляр (учетная запись) S3 для резервного копирования. Резервное копирование обязательно","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":424,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":500,"descr":"Квота ядра пода (milicores)","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":425,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1024","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":1024,"descr":"Квота памяти пода (MBytes)","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":426,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":427,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":428,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделение белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний (белый) IP для доступа к master","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":429,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации VIP master","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":430,"svcOperationCfsParam":"ext_BACKUP_SCHEDULE","label":"Расписание резервного копирования","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"0 * * * *","defaultCompute":null,"func":null,"regex":"^(\\*|(\\d+|\\*\\/\\d+|\\d+(,\\d+)*))\\s\\*\\s\\*\\s\\*\\s\\*$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Не обязательный. Время запуска бекапа","man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":431,"svcOperationCfsParam":"appVersion","label":"Версия MySQL","dataType":"string","valueList":["8.4.0","9.4.0"],"refSvcId":null,"isRequired":true,"defaultValue":"9.4.0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия MySQL","man":null,"sort":100,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":432,"svcOperationCfsParam":"autoScale","label":"Включить autoScale","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает автоскейлинг PV. При включении параметра необходимо настроить autoScalePercentage и autoScaleTechWindow. Алерт при срабатывании вызывает modify у текущей услуги","man":null,"sort":310,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":433,"svcOperationCfsParam":"autoScalePercentage","label":"На сколько % расширяться диск (мин. 1G)","dataType":"integer > 0","valueList":["10","15","20"],"refSvcId":null,"isRequired":false,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Требует включения autoScale. Позволяет указать в процентах расширение от текущего макс объема","man":null,"sort":320,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":434,"svcOperationCfsParam":"autoScaleTechWindow","label":"Тех окно обновления дисков","dataType":"integer >= 0","valueList":["0","5","12","23"],"refSvcId":null,"isRequired":false,"defaultValue":"0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Требует включения autoScale. Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23)","man":null,"sort":330,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":435,"svcOperationCfsParam":"autoScaleQuotaGb","label":"Квота для autoScale","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Квота для autoScale","man":null,"sort":340,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":61} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/115/139.json b/artifacts/api-meta/prod/operations/115/139.json new file mode 100644 index 0000000..cddd4d1 --- /dev/null +++ b/artifacts/api-meta/prod/operations/115/139.json @@ -0,0 +1 @@ +{"queryDurationMs":70,"svcOperation":{"svcOperationId":139,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Mariadb/job/delete/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":456,"svcOperationCfsParam":"deleteS3Bucket","label":"Также удалить технический S3 Bucket с бэкапами?","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Также удалить технический S3 Bucket с бэкапами?","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":71} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/115/140.json b/artifacts/api-meta/prod/operations/115/140.json new file mode 100644 index 0000000..2d2be2d --- /dev/null +++ b/artifacts/api-meta/prod/operations/115/140.json @@ -0,0 +1 @@ +{"queryDurationMs":64,"svcOperation":{"svcOperationId":140,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Mariadb/job/suspend/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":64} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/115/141.json b/artifacts/api-meta/prod/operations/115/141.json new file mode 100644 index 0000000..cf8f5f4 --- /dev/null +++ b/artifacts/api-meta/prod/operations/115/141.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":141,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Mariadb/job/resume/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/115/142.json b/artifacts/api-meta/prod/operations/115/142.json new file mode 100644 index 0000000..7499954 --- /dev/null +++ b/artifacts/api-meta/prod/operations/115/142.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":142,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Mariadb/job/modify/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":436,"svcOperationCfsParam":"resourceCPU","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":437,"svcOperationCfsParam":"resourceMemory","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":438,"svcOperationCfsParam":"resourceInstances","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":439,"svcOperationCfsParam":"resourceDisk","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":440,"svcOperationCfsParam":"needExternalAddressMaster","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":441,"svcOperationCfsParam":"ipSpaceNameMaster","label":null,"dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":442,"svcOperationCfsParam":"ext_BACKUP_SCHEDULE","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":443,"svcOperationCfsParam":"autoScale","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":444,"svcOperationCfsParam":"autoScalePercentage","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":445,"svcOperationCfsParam":"autoScaleTechWindow","label":null,"dataType":"integer >= 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":446,"svcOperationCfsParam":"autoScaleQuotaGb","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/116.list b/artifacts/api-meta/prod/operations/116.list new file mode 100644 index 0000000..0197396 --- /dev/null +++ b/artifacts/api-meta/prod/operations/116.list @@ -0,0 +1,11 @@ +create 148 +delete 149 +suspend 160 +modify 162 +modify_user 169 +delete_topic 167 +resume 161 +create_user 168 +delete_user 170 +modify_topic 166 +create_topic 165 diff --git a/artifacts/api-meta/prod/operations/116/148.json b/artifacts/api-meta/prod/operations/116/148.json new file mode 100644 index 0000000..bb706aa --- /dev/null +++ b/artifacts/api-meta/prod/operations/116/148.json @@ -0,0 +1 @@ +{"queryDurationMs":47,"svcOperation":{"svcOperationId":148,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Kafka/job/create/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":469,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать платформу из списка","man":null,"sort":5,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":461,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов в сети","dataType":"integer > 0","valueList":["1","2","3","4","5"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1,"descr":"Пример: `2`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":462,"svcOperationCfsParam":"resourceMemory","label":"Квота(megabyte) памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1000,"descr":"Пример: `2048`","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":463,"svcOperationCfsParam":"resourceCPU","label":"Квота(millicore ) ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1000,"descr":"Пример: `2000`","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":464,"svcOperationCfsParam":"resourceDisk","label":"Размер(gigabyte) диска для базы данных","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `20`","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":465,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделяет внешний IP для доступа к master","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-брокеру. Пример: `true` или `false`","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":466,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации внешнего IP","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/116/149.json b/artifacts/api-meta/prod/operations/116/149.json new file mode 100644 index 0000000..2cf1fe5 --- /dev/null +++ b/artifacts/api-meta/prod/operations/116/149.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":149,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Kafka/job/delete/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/116/160.json b/artifacts/api-meta/prod/operations/116/160.json new file mode 100644 index 0000000..560e356 --- /dev/null +++ b/artifacts/api-meta/prod/operations/116/160.json @@ -0,0 +1 @@ +{"queryDurationMs":80,"svcOperation":{"svcOperationId":160,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Kafka/job/suspend/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":80} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/116/161.json b/artifacts/api-meta/prod/operations/116/161.json new file mode 100644 index 0000000..64de1ab --- /dev/null +++ b/artifacts/api-meta/prod/operations/116/161.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":161,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Kafka/job/resume/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/116/162.json b/artifacts/api-meta/prod/operations/116/162.json new file mode 100644 index 0000000..71119a6 --- /dev/null +++ b/artifacts/api-meta/prod/operations/116/162.json @@ -0,0 +1 @@ +{"queryDurationMs":73,"svcOperation":{"svcOperationId":162,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Kafka/job/modify/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":501,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов в сети","dataType":"integer > 0","valueList":["1","2","3","4","5"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `2`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":502,"svcOperationCfsParam":"resourceMemory","label":"Квота(megabyte) памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1000,"descr":"Пример: `2048`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":503,"svcOperationCfsParam":"resourceCPU","label":"Квота(millicore ) ядра пода","dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1000,"descr":"Пример: `2000`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":504,"svcOperationCfsParam":"resourceDisk","label":"Размер(gigabyte) диска для базы данных","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `20`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":505,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделяет внешний IP для доступа к master.","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-брокеру. Пример: `true` или `false`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":506,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации внешнего IP","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":74} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/116/165.json b/artifacts/api-meta/prod/operations/116/165.json new file mode 100644 index 0000000..5be3ae7 --- /dev/null +++ b/artifacts/api-meta/prod/operations/116/165.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":165,"operation":"create_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Kafka/job/create_topic/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"# Инструкция по управлению топиками Apache Kafka через платформу

## 1. Общая информация

---

Топик — это основная сущность в Apache Kafka, предназначенная для приёма сообщений от продюсеров и передачи их консюмерам.
Платформа позволяет создавать, удалять и изменять параметры топиков без прямого доступа к брокерам, обеспечивая удобное управление через интерфейс или API.

---

## Доступные операции

- **create_topic** — Создание топика
- **modify_topic** — Модификация топика
- **delete_topic** — Удаление топика

---

## 2. Параметры создания топика

Ниже перечислены параметры, которые необходимо указать при создании нового топика:

* **Имя топика**
Название топика.
Должно быть уникальным в пределах кластера.
Пример: `orders-events`.

* **Партиции**
Количество партиций топика.
Рекомендуется выбирать с учётом уровня параллелизма потребителей и предполагаемой нагрузки.
Пример: `6`. Здесь важно рассказать о том как происходит расчет оптимального количества
Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.

* **Реплики**
Количество реплик для каждой партиции.
Обычно равно количеству доступных брокеров или меньше.
Пример: `3`.


---

## 4. Параметры модификации топика

Для уже существующих топиков можно изменять параметры. Все параметры являются опциональными:

* **Имя топика**
Название топика.
Пример: `orders-events`.

* **Партиции**
Новое количество партиций.
Пример: `12`.

* **Реплики**
Новое количество реплик.
Пример: `2`.

---

## 5. Рекомендации

* Планируйте количество партиций с запасом — уменьшение их числа невозможно.
* Количество реплик должно соответствовать требуемому уровню отказоустойчивости, но не превышать количество брокеров.
* Изменение параметров топика в рабочем окружении может временно влиять на производительность. Рекомендуется проводить крупные изменения в периоды минимальной нагрузки.

---","cfsParams":[{"svcOperationCfsParamId":523,"svcOperationCfsParam":"nameTopic","label":"Название топика","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":525,"svcOperationCfsParam":"replicas","label":"Количество реплик для топика","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Количество реплик не может привышать количество реплик брокера","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":524,"svcOperationCfsParam":"partitions","label":"Количество партиций топика","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Число партиций можно увеличить, но уменьшить их нельзя.","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/116/166.json b/artifacts/api-meta/prod/operations/116/166.json new file mode 100644 index 0000000..fb7aec1 --- /dev/null +++ b/artifacts/api-meta/prod/operations/116/166.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":166,"operation":"modify_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Kafka/job/modify_topic/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"# Инструкция по управлению топиками Apache Kafka через платформу

## 1. Общая информация

---

Топик — это основная сущность в Apache Kafka, предназначенная для приёма сообщений от продюсеров и передачи их консюмерам.
Платформа позволяет создавать, удалять и изменять параметры топиков без прямого доступа к брокерам, обеспечивая удобное управление через интерфейс или API.

---

## Доступные операции

- **create_topic** — Создание топика
- **modify_topic** — Модификация топика
- **delete_topic** — Удаление топика

---

## 2. Параметры создания топика

Ниже перечислены параметры, которые необходимо указать при создании нового топика:

* **Имя топика**
Название топика.
Должно быть уникальным в пределах кластера.
Пример: `orders-events`.

* **Партиции**
Количество партиций топика.
Рекомендуется выбирать с учётом уровня параллелизма потребителей и предполагаемой нагрузки.
Пример: `6`. Здесь важно рассказать о том как происходит расчет оптимального количества
Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.

* **Реплики**
Количество реплик для каждой партиции.
Обычно равно количеству доступных брокеров или меньше.
Пример: `3`.


---

## 4. Параметры модификации топика

Для уже существующих топиков можно изменять параметры. Все параметры являются опциональными:

* **Имя топика**
Название топика.
Пример: `orders-events`.

* **Партиции**
Новое количество партиций.
Пример: `12`.

* **Реплики**
Новое количество реплик.
Пример: `2`.

---

## 5. Рекомендации

* Планируйте количество партиций с запасом — уменьшение их числа невозможно.
* Количество реплик должно соответствовать требуемому уровню отказоустойчивости, но не превышать количество брокеров.
* Изменение параметров топика в рабочем окружении может временно влиять на производительность. Рекомендуется проводить крупные изменения в периоды минимальной нагрузки.

---","cfsParams":[{"svcOperationCfsParamId":526,"svcOperationCfsParam":"nameTopic","label":"Название топика","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":528,"svcOperationCfsParam":"replicas","label":"Количество реплик для топика","dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Количество партиций ≤ (число брокеров). Пример `2`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":527,"svcOperationCfsParam":"partitions","label":"Количество партиций топика","dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Число партиций на кластер ≤ 100 × (число брокеров) × (фактор репликации). Пример `50`","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/116/167.json b/artifacts/api-meta/prod/operations/116/167.json new file mode 100644 index 0000000..75df755 --- /dev/null +++ b/artifacts/api-meta/prod/operations/116/167.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":167,"operation":"delete_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Kafka/job/delete_topic/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":529,"svcOperationCfsParam":"nameTopic","label":"Название топика","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходимо выбрать топик, который необходимо удалить","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/116/168.json b/artifacts/api-meta/prod/operations/116/168.json new file mode 100644 index 0000000..e570a8e --- /dev/null +++ b/artifacts/api-meta/prod/operations/116/168.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":168,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Kafka/job/create_user/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.

---

## 1. Общая информация

Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.
Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.
Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.

---

## Доступные операции

- **create_user** — Создание пользователя
- **modify_user** — Модификация пользователя
- **delete_user** — Удаление пользователя

---

## 2. Параметры создания пользователя

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

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 3. Параметры модификации пользователя

Ниже перечислены параметры, которые необходимо указать при модификации пользователя:

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 4. Параметры удалении пользователя

Ниже перечислены параметры, которые необходимо указать при удалении пользователя:

* **Имя пользователя**
Имя удаляемого пользователя.
Пример: `username-admin`

## 5. Выходные параметры

После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:

* **ca.crt**
Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.
Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **ca.p12**
PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.p12
```

* **ca.password**
Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

* **user.crt**
Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.
Используется совместно с приватным ключом `user.key` для аутентификации.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **user.key**
Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.key
```

* **user.p12**
PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo "<содержание поля>" | base64 -d > <название>.p12
```

* **user.password**
Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

Эти параметры используются для настройки TLS-подключения.

---

## 6. Пример конфигурации клиента внутри кластера

Пример пода:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: kafka-4
spec:
volumes:
- name: work
emptyDir: {}
containers:
- name: kcat
image: quay.io/strimzi/kafka:latest-kafka-4.0.0
command: ["sleep", "5600"]
volumeMounts:
- name: work
mountPath: /work
restartPolicy: Never
```

Создаём под и сохраняем сертификаты:

```bash
kubectl cp user.p12 kafka-4:/work/
kubectl cp ca.p12 kafka-4:/work/
```

Создаём файлы конфигурации:

```bash
cat > /work/user-read.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

```bash
cat > /work/user-write.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user-write.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

Листинг доступных топиков:

```bash
/opt/kafka/bin/kafka-topics.sh \\
--bootstrap-server kafkak8s-bootstrap-external:9093 \\
--command-config /work/user-read.properties \\
--list
```

Запись сообщений:

```bash
/opt/kafka/bin/kafka-console-producer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--producer.config /work/user-write.properties
```

Чтение сообщений:

```bash
/opt/kafka/bin/kafka-console-consumer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--from-beginning \\
--group <group> \\
--consumer.config /work/user-read.properties \\
--max-messages 50
```

---

## 7. Пример внешнего подключения с использованием **kcat**

**Листинг топиков**

```bash
kcat -b <externalConnect.bootstrap.fqdn>:9093 \\
-L \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Запись сообщения**

```bash
echo "hello from kcat" | kcat -P \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-write.crt \\
-X ssl.key.location=./user-write.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Чтение сообщений**

```bash
kcat -C \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-o beginning \\
-q \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

---


## 9. Рекомендации

* Минимизируйте набор разрешённых операций для повышения безопасности.
* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.
* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.
* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.

---","cfsParams":[{"svcOperationCfsParamId":530,"svcOperationCfsParam":"username","label":"Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `username-admin`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":531,"svcOperationCfsParam":"nameTopic","label":"Название топика, к которому будут назначены права для создоваемого пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`. Использовать маску нельзя(`orders*`), только полное название или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":532,"svcOperationCfsParam":"operations","label":"Список операций, которые разрешены пользователю на топике","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `Create, Describe, Read, Write`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":533,"svcOperationCfsParam":"group","label":"Группа, которым разрешён доступ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `order-consumers` или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":534,"svcOperationCfsParam":"accessHosts","label":"Список хостов, с которых разрешено подключение к Kafka","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `192.168.1.0/24` или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/116/169.json b/artifacts/api-meta/prod/operations/116/169.json new file mode 100644 index 0000000..ae32ad1 --- /dev/null +++ b/artifacts/api-meta/prod/operations/116/169.json @@ -0,0 +1 @@ +{"queryDurationMs":60,"svcOperation":{"svcOperationId":169,"operation":"modify_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Kafka/job/modify_user/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.

---

## 1. Общая информация

Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.
Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.
Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.

---

## Доступные операции

- **create_user** — Создание пользователя
- **modify_user** — Модификация пользователя
- **delete_user** — Удаление пользователя

---

## 2. Параметры создания пользователя

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

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 3. Параметры модификации пользователя

Ниже перечислены параметры, которые необходимо указать при модификации пользователя:

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 4. Параметры удалении пользователя

Ниже перечислены параметры, которые необходимо указать при удалении пользователя:

* **Имя пользователя**
Имя удаляемого пользователя.
Пример: `username-admin`

## 5. Выходные параметры

После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:

* **ca.crt**
Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.
Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **ca.p12**
PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.p12
```

* **ca.password**
Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

* **user.crt**
Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.
Используется совместно с приватным ключом `user.key` для аутентификации.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **user.key**
Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.key
```

* **user.p12**
PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo "<содержание поля>" | base64 -d > <название>.p12
```

* **user.password**
Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

Эти параметры используются для настройки TLS-подключения.

---

## 6. Пример конфигурации клиента внутри кластера

Пример пода:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: kafka-4
spec:
volumes:
- name: work
emptyDir: {}
containers:
- name: kcat
image: quay.io/strimzi/kafka:latest-kafka-4.0.0
command: ["sleep", "5600"]
volumeMounts:
- name: work
mountPath: /work
restartPolicy: Never
```

Создаём под и сохраняем сертификаты:

```bash
kubectl cp user.p12 kafka-4:/work/
kubectl cp ca.p12 kafka-4:/work/
```

Создаём файлы конфигурации:

```bash
cat > /work/user-read.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

```bash
cat > /work/user-write.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user-write.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

Листинг доступных топиков:

```bash
/opt/kafka/bin/kafka-topics.sh \\
--bootstrap-server kafkak8s-bootstrap-external:9093 \\
--command-config /work/user-read.properties \\
--list
```

Запись сообщений:

```bash
/opt/kafka/bin/kafka-console-producer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--producer.config /work/user-write.properties
```

Чтение сообщений:

```bash
/opt/kafka/bin/kafka-console-consumer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--from-beginning \\
--group <group> \\
--consumer.config /work/user-read.properties \\
--max-messages 50
```

---

## 7. Пример внешнего подключения с использованием **kcat**

**Листинг топиков**

```bash
kcat -b <externalConnect.bootstrap.fqdn>:9093 \\
-L \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Запись сообщения**

```bash
echo "hello from kcat" | kcat -P \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-write.crt \\
-X ssl.key.location=./user-write.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Чтение сообщений**

```bash
kcat -C \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-o beginning \\
-q \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

---


## 9. Рекомендации

* Минимизируйте набор разрешённых операций для повышения безопасности.
* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.
* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.
* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.

---","cfsParams":[{"svcOperationCfsParamId":539,"svcOperationCfsParam":"username","label":"Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `username-admin`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":535,"svcOperationCfsParam":"nameTopic","label":"Название топика (topic), к которому будут назначены права для указанного пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`. Использовать маску нельзя(`orders*`), только полное название или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":536,"svcOperationCfsParam":"operations","label":"Список операций, которые разрешены пользователю на топике","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `Create, Describe, Read, Write`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":537,"svcOperationCfsParam":"group","label":"Группа, которым разрешён доступ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `order-consumers` или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":538,"svcOperationCfsParam":"accessHosts","label":"Список хостов, с которых разрешено подключение к Kafka","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `192.168.1.0/24` или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":61} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/116/170.json b/artifacts/api-meta/prod/operations/116/170.json new file mode 100644 index 0000000..ccafc7a --- /dev/null +++ b/artifacts/api-meta/prod/operations/116/170.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":170,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Kafka/job/delete_user/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.

---

## 1. Общая информация

Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.
Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.
Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.

---

## Доступные операции

- **create_user** — Создание пользователя
- **modify_user** — Модификация пользователя
- **delete_user** — Удаление пользователя

---

## 2. Параметры создания пользователя

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

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 3. Параметры модификации пользователя

Ниже перечислены параметры, которые необходимо указать при модификации пользователя:

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 4. Параметры удалении пользователя

Ниже перечислены параметры, которые необходимо указать при удалении пользователя:

* **Имя пользователя**
Имя удаляемого пользователя.
Пример: `username-admin`

## 5. Выходные параметры

После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:

* **ca.crt**
Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.
Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **ca.p12**
PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.p12
```

* **ca.password**
Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

* **user.crt**
Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.
Используется совместно с приватным ключом `user.key` для аутентификации.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **user.key**
Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.key
```

* **user.p12**
PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo "<содержание поля>" | base64 -d > <название>.p12
```

* **user.password**
Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

Эти параметры используются для настройки TLS-подключения.

---

## 6. Пример конфигурации клиента внутри кластера

Пример пода:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: kafka-4
spec:
volumes:
- name: work
emptyDir: {}
containers:
- name: kcat
image: quay.io/strimzi/kafka:latest-kafka-4.0.0
command: ["sleep", "5600"]
volumeMounts:
- name: work
mountPath: /work
restartPolicy: Never
```

Создаём под и сохраняем сертификаты:

```bash
kubectl cp user.p12 kafka-4:/work/
kubectl cp ca.p12 kafka-4:/work/
```

Создаём файлы конфигурации:

```bash
cat > /work/user-read.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

```bash
cat > /work/user-write.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user-write.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

Листинг доступных топиков:

```bash
/opt/kafka/bin/kafka-topics.sh \\
--bootstrap-server kafkak8s-bootstrap-external:9093 \\
--command-config /work/user-read.properties \\
--list
```

Запись сообщений:

```bash
/opt/kafka/bin/kafka-console-producer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--producer.config /work/user-write.properties
```

Чтение сообщений:

```bash
/opt/kafka/bin/kafka-console-consumer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--from-beginning \\
--group <group> \\
--consumer.config /work/user-read.properties \\
--max-messages 50
```

---

## 7. Пример внешнего подключения с использованием **kcat**

**Листинг топиков**

```bash
kcat -b <externalConnect.bootstrap.fqdn>:9093 \\
-L \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Запись сообщения**

```bash
echo "hello from kcat" | kcat -P \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-write.crt \\
-X ssl.key.location=./user-write.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Чтение сообщений**

```bash
kcat -C \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-o beginning \\
-q \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

---


## 9. Рекомендации

* Минимизируйте набор разрешённых операций для повышения безопасности.
* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.
* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.
* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.

---","cfsParams":[{"svcOperationCfsParamId":540,"svcOperationCfsParam":"username","label":"Имя удаляемого пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `username-admin`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/117.list b/artifacts/api-meta/prod/operations/117.list new file mode 100644 index 0000000..14cdc3c --- /dev/null +++ b/artifacts/api-meta/prod/operations/117.list @@ -0,0 +1,3 @@ +modify 154 +create 150 +delete 151 diff --git a/artifacts/api-meta/prod/operations/117/150.json b/artifacts/api-meta/prod/operations/117/150.json new file mode 100644 index 0000000..8eb7c19 --- /dev/null +++ b/artifacts/api-meta/prod/operations/117/150.json @@ -0,0 +1 @@ +{"queryDurationMs":62,"svcOperation":{"svcOperationId":150,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Nifi/job/create/view/tags/job/null/buildWithParameters","descr":"Топик — это основная сущность в Apache Kafka, в которую продюсеры публикуют сообщения и из которой консюмеры их читают.
Платформа предоставляет удобный способ создавать и изменять параметры топиков без прямого обращения к брокерам Kafka.","man":null,"cfsParams":[{"svcOperationCfsParamId":471,"svcOperationCfsParam":"kafkaUid","label":"Необходимо выбрать кластер кафки в который нужно создать топик","dataType":"uuid","valueList":null,"refSvcId":116,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать кластер из списка","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":474,"svcOperationCfsParam":"nameTopic","label":"Название топика","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":472,"svcOperationCfsParam":"partitions","label":"Количество партиций топика","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Число партиций на кластер ≤ 100 × (число брокеров) × (фактор репликации). Пример `50`","man":"Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":473,"svcOperationCfsParam":"replicas","label":"Количество реплик для топика","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Количество партиций ≤ (число брокеров). Пример `2`","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":63} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/117/151.json b/artifacts/api-meta/prod/operations/117/151.json new file mode 100644 index 0000000..9dd8b2b --- /dev/null +++ b/artifacts/api-meta/prod/operations/117/151.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":151,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Nifi/job/delete/view/tags/job/null/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/117/154.json b/artifacts/api-meta/prod/operations/117/154.json new file mode 100644 index 0000000..c28c442 --- /dev/null +++ b/artifacts/api-meta/prod/operations/117/154.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":154,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Nifi/job/modify/view/tags/job/null/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":477,"svcOperationCfsParam":"partitions","label":"Количество партиций топика","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Число партиций на кластер ≤ 100 × (число брокеров) × (фактор репликации). Пример `50`","man":"Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":478,"svcOperationCfsParam":"replicas","label":"Количество реплик для топика","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Количество партиций ≤ (число брокеров). Пример `2`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/119.list b/artifacts/api-meta/prod/operations/119.list new file mode 100644 index 0000000..0c3b370 --- /dev/null +++ b/artifacts/api-meta/prod/operations/119.list @@ -0,0 +1,5 @@ +modify 180 +delete 176 +resume 178 +suspend 177 +create 175 diff --git a/artifacts/api-meta/prod/operations/119/175.json b/artifacts/api-meta/prod/operations/119/175.json new file mode 100644 index 0000000..accaff0 --- /dev/null +++ b/artifacts/api-meta/prod/operations/119/175.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":175,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Akhq/job/create/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":555,"svcOperationCfsParam":"kafkaUid","label":"Кластер Kafka к которому нужно настроить подключение","dataType":"uuid","valueList":null,"refSvcId":116,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать кластер из списка","man":null,"sort":5,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":550,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать платформу из списка","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":554,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов в сети","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1,"descr":null,"man":null,"sort":11,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":551,"svcOperationCfsParam":"resourceMemory","label":"Квота(megabyte) памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":512,"descr":"Пример: `1024`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":552,"svcOperationCfsParam":"resourceCPU","label":"Квота(millicore ) ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":500,"descr":"Пример: `1000`","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":553,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/119/176.json b/artifacts/api-meta/prod/operations/119/176.json new file mode 100644 index 0000000..befdc01 --- /dev/null +++ b/artifacts/api-meta/prod/operations/119/176.json @@ -0,0 +1 @@ +{"queryDurationMs":70,"svcOperation":{"svcOperationId":176,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Akhq/job/delete/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":70} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/119/177.json b/artifacts/api-meta/prod/operations/119/177.json new file mode 100644 index 0000000..e03c5e6 --- /dev/null +++ b/artifacts/api-meta/prod/operations/119/177.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":177,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Akhq/job/suspend/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/119/178.json b/artifacts/api-meta/prod/operations/119/178.json new file mode 100644 index 0000000..f71fd58 --- /dev/null +++ b/artifacts/api-meta/prod/operations/119/178.json @@ -0,0 +1 @@ +{"queryDurationMs":123,"svcOperation":{"svcOperationId":178,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Akhq/job/resume/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":123} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/119/180.json b/artifacts/api-meta/prod/operations/119/180.json new file mode 100644 index 0000000..00571da --- /dev/null +++ b/artifacts/api-meta/prod/operations/119/180.json @@ -0,0 +1 @@ +{"queryDurationMs":60,"svcOperation":{"svcOperationId":180,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Akhq/job/modify/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":565,"svcOperationCfsParam":"kafkaUid","label":"Кластер Kafka к которому нужно настроить подключение","dataType":"uuid","valueList":null,"refSvcId":116,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать кластер из списка","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":61} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/12.list b/artifacts/api-meta/prod/operations/12.list new file mode 100644 index 0000000..9c3e11f --- /dev/null +++ b/artifacts/api-meta/prod/operations/12.list @@ -0,0 +1,7 @@ +delete_sub_user 7 +delete 5 +resume 3 +create 1 +create_sub_user 6 +modify 4 +suspend 2 diff --git a/artifacts/api-meta/prod/operations/12/1.json b/artifacts/api-meta/prod/operations/12/1.json new file mode 100644 index 0000000..5723bc6 --- /dev/null +++ b/artifacts/api-meta/prod/operations/12/1.json @@ -0,0 +1 @@ +{"queryDurationMs":64,"svcOperation":{"svcOperationId":1,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/s3/job/Ceph/job/create/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":320,"svcOperationCfsParam":"displayName","label":"Человеко-читаемое имя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Человеко-читаемое имя (транслит из Elma) - передаётся имя клиента","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":163,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"кластер S3 для подключения","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":65} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/12/2.json b/artifacts/api-meta/prod/operations/12/2.json new file mode 100644 index 0000000..f69f29d --- /dev/null +++ b/artifacts/api-meta/prod/operations/12/2.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":2,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/s3/job/Ceph/job/suspend/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/12/3.json b/artifacts/api-meta/prod/operations/12/3.json new file mode 100644 index 0000000..d493a77 --- /dev/null +++ b/artifacts/api-meta/prod/operations/12/3.json @@ -0,0 +1 @@ +{"queryDurationMs":63,"svcOperation":{"svcOperationId":3,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/s3/job/Ceph/job/resume/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":63} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/12/4.json b/artifacts/api-meta/prod/operations/12/4.json new file mode 100644 index 0000000..bec318d --- /dev/null +++ b/artifacts/api-meta/prod/operations/12/4.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":4,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/s3/job/Ceph/job/modify/view/tags/job/1.0.5/buildWithParameters","descr":"При первичном вызове операции услуга Trial прекращает действие","man":"При первичном вызове операции услуга Trial прекращает действие","cfsParams":[{"svcOperationCfsParamId":50,"svcOperationCfsParam":"maxSizeGbPerUser","label":null,"dataType":"integer","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":50000,"minvalue":-1,"descr":"maxSizeGb. Передаём руками","man":"maxSizeGb. Передаём руками","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":51,"svcOperationCfsParam":"maxObjectsPerBucket","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":10000000,"minvalue":1,"descr":"Квота на бакет. Кол-во объектов. Передаём руками","man":"Квота на бакет. Кол-во объектов. Передаём руками","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":52,"svcOperationCfsParam":"maxBucketsPerUser","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":1000,"minvalue":1,"descr":"Квота на пользователя. Количество бакетов пользователя. Передаём руками","man":"Квота на пользователя. Количество бакетов пользователя. Передаём руками","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/12/5.json b/artifacts/api-meta/prod/operations/12/5.json new file mode 100644 index 0000000..ffd8240 --- /dev/null +++ b/artifacts/api-meta/prod/operations/12/5.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":5,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/s3/job/Ceph/job/delete/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/12/6.json b/artifacts/api-meta/prod/operations/12/6.json new file mode 100644 index 0000000..12d8b6e --- /dev/null +++ b/artifacts/api-meta/prod/operations/12/6.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":6,"operation":"create_sub_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/s3/job/Ceph/job/create_sub_user/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":60,"svcOperationCfsParam":"subUserName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":61,"svcOperationCfsParam":"subUserAccess","label":null,"dataType":"string","valueList":["read","write","readwrite","full"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/12/7.json b/artifacts/api-meta/prod/operations/12/7.json new file mode 100644 index 0000000..e8555dd --- /dev/null +++ b/artifacts/api-meta/prod/operations/12/7.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":7,"operation":"delete_sub_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/s3/job/Ceph/job/delete_sub_user/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":63,"svcOperationCfsParam":"subUserName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"subUserName. По идее услуга уже создана - должен передаваться из ЛК","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/120.list b/artifacts/api-meta/prod/operations/120.list new file mode 100644 index 0000000..075baac --- /dev/null +++ b/artifacts/api-meta/prod/operations/120.list @@ -0,0 +1,9 @@ +create_database 186 +modify 189 +delete_database 188 +delete 184 +suspend 182 +create 181 +delete_user 187 +create_user 185 +resume 183 diff --git a/artifacts/api-meta/prod/operations/120/181.json b/artifacts/api-meta/prod/operations/120/181.json new file mode 100644 index 0000000..9074b8e --- /dev/null +++ b/artifacts/api-meta/prod/operations/120/181.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":181,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/ClickHouse/job/create/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"Операция создания кластера ClickHouse

Для подключения к кластеру также необходимо создать базу данных через операцию `create_database` и создание пользователя через операцию `create_user`","cfsParams":[{"svcOperationCfsParamId":572,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Кластер Kubernetes в котором будет развёрнуто приложение","man":"Выбрать платформу из списка

**Если список не отображается**
обратитесь к сервис менеджеру с вопросом предоставления ресурсной платформы","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":573,"svcOperationCfsParam":"s3Uid","label":"Услуга S3 для резервных копий","dataType":"uuid","valueList":null,"refSvcId":12,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Экземпляр (учетная запись) S3 для резервного копирования. Резервное копирование обязательно","man":"**Если список не отображается**
перейдите в раздел `S3 Object Storage`
операция `create`","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":574,"svcOperationCfsParam":"resourceInstances","label":"Кол-во реплик каждого шарда","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `3`","man":"**Для синхронизации данных между репликами** необходимо включить `Создать ClickHouse-Keeper`","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":575,"svcOperationCfsParam":"resourceInstancesShards","label":"Количество шардов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `1`","man":"**Шард** - это часть данных, разделенная на разные узлы (серверы) для горизонтального масштабирования и обработки больших объемов информации.
**Реплика** - это точная копия данных внутри одного шарда","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":576,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода кластера","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1000","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8000,"minvalue":1000,"descr":"Пример: `1000`","man":"Указывается в Milicores
`1000` Mili == `1` Ядро","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":577,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода кластера","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1536","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":1536,"descr":"Пример: `2048`","man":"Указывается в Megabytes","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":578,"svcOperationCfsParam":"appVersion","label":"Версия ClickHouse-server","dataType":"string","valueList":["25.10"],"refSvcId":null,"isRequired":true,"defaultValue":"25.10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия `clickhouse-server`","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":579,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Пример: `100`","man":"Указывается в Gigabytes","sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":580,"svcOperationCfsParam":"needExternalAddressMaster","label":"Публикация белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Позволяет подключиться извне к ClickHouse","man":"Для выделения IP также необходимо указать имя Ip-space.
Его можно получить из свойств ресурсной платформы","sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":581,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации белого ip master ноды","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `internet-no-antiddos-v1`","man":"Имя ipSpace для публикации внешнего адреса

Не может быть пустым, если включен `Выделение белого ip для master ноды`","sort":100,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":582,"svcOperationCfsParam":"needCreateKeeper","label":"Создать ClickHouse-Keeper","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходим для кластеризации ClickHouse","man":"Аналог `Zookeeper`, представленный от ClickHouse","sort":200,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":583,"svcOperationCfsParam":"resourceCPUKeeper","label":"Квота ядра пода Keeper","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"50","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8000,"minvalue":50,"descr":"Пример: `100`","man":"Указывается в Milicores
`1000` Mili == `1` Ядро","sort":210,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":584,"svcOperationCfsParam":"resourceMemoryKeeper","label":"Квота памяти пода Keeper","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"152","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":152,"descr":"Пример: `256`","man":"Указывается в Megabytes","sort":220,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":585,"svcOperationCfsParam":"resourceInstancesKeeper","label":"Кол-во реплик Keeper","dataType":"integer > 0","valueList":["1","3"],"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":3,"minvalue":1,"descr":"Пример: `1`","man":"Для **теста** - 1 нода.
Для **продуктива** - 3 ноды","sort":230,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":586,"svcOperationCfsParam":"ext_BACKUP_SCHEDULE","label":"Расписание резервного копирования","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"0 0 * * *","defaultCompute":null,"func":null,"regex":"^((((\\d+,)+\\d+|(\\d+(\\/|-|#)\\d+)|(\\d+L?)|(\\*(\\/\\d+)?)|(L(-\\d+)?)|(\\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\\d+(ns|us|µs|ms|s|m|h))+)$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Принимает формат `CRON`","man":null,"sort":500,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":587,"svcOperationCfsParam":"ext_BACKUP_NUM_TO_RETAIN","label":"Количество резервных копий","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"7","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":60,"minvalue":3,"descr":"Пример: `7`","man":"Кол-во **полных** резервных копий
Кол-во инкрементов - неограничено

Полная резервная копия выполняется раз в неделю
*Если изначально полной резервной копии нет* выполняется полный бекап
В остальные дни по крону выполняются **инкременты**","sort":510,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/120/182.json b/artifacts/api-meta/prod/operations/120/182.json new file mode 100644 index 0000000..8ce9c84 --- /dev/null +++ b/artifacts/api-meta/prod/operations/120/182.json @@ -0,0 +1 @@ +{"queryDurationMs":61,"svcOperation":{"svcOperationId":182,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/ClickHouse/job/suspend/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"Операция приводит к удалению всех подов
Persistent Volume остаются нетронутыми","cfsParams":[]},"runDurationMs":61} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/120/183.json b/artifacts/api-meta/prod/operations/120/183.json new file mode 100644 index 0000000..8c791d3 --- /dev/null +++ b/artifacts/api-meta/prod/operations/120/183.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":183,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/ClickHouse/job/resume/view/tags/job/0.0.4/buildWithParameters","descr":"Восстанавливает все поды и приводит кластер в работоспособный вид","man":null,"cfsParams":[]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/120/184.json b/artifacts/api-meta/prod/operations/120/184.json new file mode 100644 index 0000000..0c4cc5f --- /dev/null +++ b/artifacts/api-meta/prod/operations/120/184.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svcOperation":{"svcOperationId":184,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/ClickHouse/job/delete/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"Удаление возможно только после остановки сервиса через операцию `suspend`
После выполнения операции необходимо выждать определенное кол-во времени","cfsParams":[]},"runDurationMs":58} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/120/185.json b/artifacts/api-meta/prod/operations/120/185.json new file mode 100644 index 0000000..3150c20 --- /dev/null +++ b/artifacts/api-meta/prod/operations/120/185.json @@ -0,0 +1 @@ +{"queryDurationMs":64,"svcOperation":{"svcOperationId":185,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/ClickHouse/job/create_user/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":596,"svcOperationCfsParam":"username","label":"Имя пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?![0-9_])[a-zA-Z_][a-zA-Z0-9_]{0,62}$","uniqueScope":null,"maxlength":62,"minlength":2,"maxvalue":null,"minvalue":null,"descr":"Пример: `myusername`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":598,"svcOperationCfsParam":"databaseName","label":"Список баз данных, к которым будет предоставлен доступ","dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[\"database\"]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходимо указать массив существующих баз","man":"Если базы не существует - при выполнении операции вернётся ошибка","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":599,"svcOperationCfsParam":"accessHosts","label":"Список хостов, с которых разрешено подключение к ClickHouse от лица пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"::/0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `::/0`","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":65} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/120/186.json b/artifacts/api-meta/prod/operations/120/186.json new file mode 100644 index 0000000..481b20a --- /dev/null +++ b/artifacts/api-meta/prod/operations/120/186.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":186,"operation":"create_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/ClickHouse/job/create_database/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"База данных создаётся на всех репликах кластера ClickHouse","cfsParams":[{"svcOperationCfsParamId":600,"svcOperationCfsParam":"databaseName","label":"Имя базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `db01`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/120/187.json b/artifacts/api-meta/prod/operations/120/187.json new file mode 100644 index 0000000..7e5182f --- /dev/null +++ b/artifacts/api-meta/prod/operations/120/187.json @@ -0,0 +1 @@ +{"queryDurationMs":59,"svcOperation":{"svcOperationId":187,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/ClickHouse/job/delete_user/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":601,"svcOperationCfsParam":"username","label":null,"dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя пользователя, созданное через операцию `create_user`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/120/188.json b/artifacts/api-meta/prod/operations/120/188.json new file mode 100644 index 0000000..02a17d4 --- /dev/null +++ b/artifacts/api-meta/prod/operations/120/188.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svcOperation":{"svcOperationId":188,"operation":"delete_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/ClickHouse/job/delete_database/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"Необратимое действие!!!
Трижды подумай, заблокируй телефон тимлида и не выполняй это действие","cfsParams":[{"svcOperationCfsParamId":602,"svcOperationCfsParam":"databaseName","label":"Имя базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"ВСЕ ДАННЫЕ ВНУТРИ БД БУДУТ УДАЛЕНЫ","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/120/189.json b/artifacts/api-meta/prod/operations/120/189.json new file mode 100644 index 0000000..4cd3705 --- /dev/null +++ b/artifacts/api-meta/prod/operations/120/189.json @@ -0,0 +1 @@ +{"queryDurationMs":59,"svcOperation":{"svcOperationId":189,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/ClickHouse/job/modify/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":603,"svcOperationCfsParam":"resourceInstances","label":"Кол-во реплик каждого шарда","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `3`","man":"**Для синхронизации данных между репликами** необходимо включить `Создать ClickHouse-Keeper`","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":604,"svcOperationCfsParam":"resourceInstancesShards","label":"Количество шардов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `1`","man":"**Шард** - это часть данных, разделенная на разные узлы (серверы) для горизонтального масштабирования и обработки больших объемов информации.
**Реплика** - это точная копия данных внутри одного шарда","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":605,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода кластера","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8000,"minvalue":1000,"descr":"Пример: `1000`","man":"Указывается в Milicores
`1000` Mili == `1` Ядро","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":606,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода кластера","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":1536,"descr":"Пример: `2048`","man":"Указывается в Megabytes","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":607,"svcOperationCfsParam":"appVersion","label":"Версия ClickHouse-server","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"25.10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия `clickhouse-server`","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":608,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Пример: `100`","man":"Указывается в Gigabytes
**Нельзя** выставлять меньше текущего значения","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":609,"svcOperationCfsParam":"needExternalAddressMaster","label":"Публикация белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Позволяет подключиться извне к ClickHouse","man":"Для выделения IP также необходимо указать имя Ip-space.
Его можно получить из свойств ресурсной платформы","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":610,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации белого ip master ноды","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `internet-no-antiddos-v1`","man":"Имя ipSpace для публикации внешнего адреса

Не может быть пустым, если включен `Выделение белого ip для master ноды`","sort":80,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":611,"svcOperationCfsParam":"needCreateKeeper","label":"Создать ClickHouse-Keeper","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходим для кластеризации ClickHouse","man":"Аналог `Zookeeper`, представленный от ClickHouse","sort":200,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":612,"svcOperationCfsParam":"resourceCPUKeeper","label":"Квота ядра пода Keeper","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8000,"minvalue":50,"descr":"Пример: `100`","man":"Указывается в Milicores
`1000` Mili == `1` Ядро","sort":210,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":613,"svcOperationCfsParam":"resourceMemoryKeeper","label":"Квота памяти пода Keeper","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":152,"descr":"Пример: `256`","man":"Указывается в Megabytes","sort":220,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":614,"svcOperationCfsParam":"resourceInstancesKeeper","label":"Кол-во реплик Keeper","dataType":"integer > 0","valueList":["1","3"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":3,"minvalue":1,"descr":"Пример: `1`","man":"Для **теста** - 1 нода.
Для **продуктива** - 3 ноды","sort":230,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":615,"svcOperationCfsParam":"ext_BACKUP_SCHEDULE","label":"Расписание резервного копирования","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"0 0 * * *","defaultCompute":null,"func":null,"regex":"^((((\\d+,)+\\d+|(\\d+(\\/|-|#)\\d+)|(\\d+L?)|(\\*(\\/\\d+)?)|(L(-\\d+)?)|(\\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\\d+(ns|us|µs|ms|s|m|h))+)$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Принимает формат `CRON`","man":null,"sort":500,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":616,"svcOperationCfsParam":"ext_BACKUP_NUM_TO_RETAIN","label":"Количество резервных копий","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":60,"minvalue":3,"descr":"Пример: `7`","man":"Кол-во **полных** резервных копий
Кол-во инкрементов - неограничено

Полная резервная копия выполняется раз в неделю
*Если изначально полной резервной копии нет* выполняется полный бекап
В остальные дни по крону выполняются **инкременты**","sort":510,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":60} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/13.list b/artifacts/api-meta/prod/operations/13.list new file mode 100644 index 0000000..7892b95 --- /dev/null +++ b/artifacts/api-meta/prod/operations/13.list @@ -0,0 +1,2 @@ +delete 52 +create 51 diff --git a/artifacts/api-meta/prod/operations/13/51.json b/artifacts/api-meta/prod/operations/13/51.json new file mode 100644 index 0000000..3b973c7 --- /dev/null +++ b/artifacts/api-meta/prod/operations/13/51.json @@ -0,0 +1 @@ +{"queryDurationMs":59,"svcOperation":{"svcOperationId":51,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/s3/job/Bucket/job/create/view/tags/job/1.0.3/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":124,"svcOperationCfsParam":"s3UserUid","label":"UID Корневой услуги S3","dataType":"uuid","valueList":null,"refSvcId":12,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UID Корневой услуги S3. На основе него будет создан бакет.","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":125,"svcOperationCfsParam":"bucketName","label":"Имя бакета s3","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя бакета s3","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":126,"svcOperationCfsParam":"maxSize","label":"Размер бакета","dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"-1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Максимальный размер бакета s3. Если поставить -1, будет безлимит. Размер указывается в Bytes","man":"Максимальный размер бакета s3. Если поставить 0, будет безлимит. Размер указывается в Bytes","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":127,"svcOperationCfsParam":"readAll","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Публичный доступ на чтение позволяет любому пользователю интернета скачивать объекты из бакета.","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":128,"svcOperationCfsParam":"listAll","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Публичный доступ к листингу позволяет любому пользователю интернета получить список объектов в бакете.","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":129,"svcOperationCfsParam":"corsAll","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Публичный доступ к чтению настроек позволяет любому пользователю интернета читать конфигурации CORS","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":130,"svcOperationCfsParam":"placement","label":"Класс хранилища","dataType":"string","valueList":["HOT","COLD"],"refSvcId":null,"isRequired":true,"defaultValue":"HOT","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Класс хранилища, который используется по умолчанию при загрузке объектов. Чем холоднее, тем дешевле место, но дороже обращения","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":60} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/13/52.json b/artifacts/api-meta/prod/operations/13/52.json new file mode 100644 index 0000000..afee210 --- /dev/null +++ b/artifacts/api-meta/prod/operations/13/52.json @@ -0,0 +1 @@ +{"queryDurationMs":62,"svcOperation":{"svcOperationId":52,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/s3/job/Bucket/job/delete/view/tags/job/1.0.3/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":62} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/149.list b/artifacts/api-meta/prod/operations/149.list new file mode 100644 index 0000000..a5a5aea --- /dev/null +++ b/artifacts/api-meta/prod/operations/149.list @@ -0,0 +1,5 @@ +resume 205 +delete 206 +suspend 204 +modify 203 +create 202 diff --git a/artifacts/api-meta/prod/operations/149/202.json b/artifacts/api-meta/prod/operations/149/202.json new file mode 100644 index 0000000..55c4f5d --- /dev/null +++ b/artifacts/api-meta/prod/operations/149/202.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":202,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/valo/job/Tenant/job/create/view/tags/job/0.0.1/buildWithParameters","descr":"При создании тенант предоставляется всегда в ТЕСТ (2 месяца с момента создания)
Для продления и переведения в ПРОД, воспользуйтесь в дальнейшем операцией modify","man":null,"cfsParams":[{"svcOperationCfsParamId":655,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":656,"svcOperationCfsParam":"domain","label":"DNS-Префикс","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^[a-z0-9](?:[a-z0-9-]{3,61}[a-z0-9])?$","uniqueScope":null,"maxlength":61,"minlength":3,"maxvalue":null,"minvalue":null,"descr":"Будет добавлено в зону valo.ngcloud.ru","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":658,"svcOperationCfsParam":"s3Storage","label":"Параметры хранилища","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Параметр указывается в `Gb`","man":"Данные хранятся в отдельном экземпляре S3","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":657,"svcOperationCfsParam":"valoOptions","label":"Настройки тенанта","dataType":"map-fixed","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"{}","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/149/203.json b/artifacts/api-meta/prod/operations/149/203.json new file mode 100644 index 0000000..2dc704b --- /dev/null +++ b/artifacts/api-meta/prod/operations/149/203.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svcOperation":{"svcOperationId":203,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/valo/job/Tenant/job/modify/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":659,"svcOperationCfsParam":"valoOptions","label":"Настройки тенанта","dataType":"map-fixed","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":660,"svcOperationCfsParam":"s3Storage","label":"Параметры хранилища","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Параметр указывается в `Gb`","man":"Данные хранятся в отдельном экземпляре S3","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":58} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/149/204.json b/artifacts/api-meta/prod/operations/149/204.json new file mode 100644 index 0000000..b857c7a --- /dev/null +++ b/artifacts/api-meta/prod/operations/149/204.json @@ -0,0 +1 @@ +{"queryDurationMs":76,"svcOperation":{"svcOperationId":204,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/valo/job/Tenant/job/suspend/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":76} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/149/205.json b/artifacts/api-meta/prod/operations/149/205.json new file mode 100644 index 0000000..a2fe394 --- /dev/null +++ b/artifacts/api-meta/prod/operations/149/205.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":205,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/valo/job/Tenant/job/resume/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/149/206.json b/artifacts/api-meta/prod/operations/149/206.json new file mode 100644 index 0000000..5b88cbe --- /dev/null +++ b/artifacts/api-meta/prod/operations/149/206.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":206,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/valo/job/Tenant/job/delete/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/150.list b/artifacts/api-meta/prod/operations/150.list new file mode 100644 index 0000000..367fa9f --- /dev/null +++ b/artifacts/api-meta/prod/operations/150.list @@ -0,0 +1,7 @@ +modify 110 +delete 109 +create 108 +resume 174 +update_secrets 179 +reconcile 253 +suspend 173 diff --git a/artifacts/api-meta/prod/operations/150/108.json b/artifacts/api-meta/prod/operations/150/108.json new file mode 100644 index 0000000..d61cade --- /dev/null +++ b/artifacts/api-meta/prod/operations/150/108.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":108,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SthutrvalCluster/job/create/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":344,"svcOperationCfsParam":"nsxtUid","label":"UUID nsxt","dataType":"uuid","valueList":null,"refSvcId":22,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"InstanceUid nsxt. Nsxt должен быть создан","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":747,"svcOperationCfsParam":"vdcUid","label":"UUID vdc","dataType":"uuid","valueList":null,"refSvcId":21,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":345,"svcOperationCfsParam":"clusterName","label":"Имя кластера Kubernetes","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"example1","defaultCompute":null,"func":null,"regex":"(?=^.{1,63}$)^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","uniqueScope":"provider","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Наименование кластера Kubernetes. Имя будет использоваться в fqdn (svc.$CLUSTER_NAME)","man":null,"sort":25,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":346,"svcOperationCfsParam":"controlPlaneSizingPolicy","label":"Сайзинг Control Plane","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Настройка Control Plane. CPU (шт) / MEM (gb).
Наверное, должна подтягиваться из свойств ресурсной платформы","man":null,"sort":30,"dependsOnCfsParams":"vdcUid","isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":347,"svcOperationCfsParam":"controlPlaneSizingDisk","label":"Размер (Gb) для Control Plane","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"30","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":20,"descr":"Настройка Control Plane. Disk (Gb)","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":348,"svcOperationCfsParam":"controlPlaneCount","label":"Кол-во нод Control Plane","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":9,"minvalue":1,"descr":null,"man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":349,"svcOperationCfsParam":"workersSizingPolicy","label":"Сайзинг Workers","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Настройка workers. CPU (шт) / MEM (gb)","man":null,"sort":60,"dependsOnCfsParams":"vdcUid","isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":350,"svcOperationCfsParam":"workersSizingDisk","label":"Размер (Gb) для Workers","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"40","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":20,"descr":"Настройка workers. Disk (Gb)","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":351,"svcOperationCfsParam":"workersCount","label":"Кол-во нод Workers","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"2","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":99,"minvalue":1,"descr":"Настройка workers. Кол-во нод","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":352,"svcOperationCfsParam":"appVersion","label":"Версия Штурвал","dataType":"string","valueList":["2.12.1","2.11.0"],"refSvcId":null,"isRequired":true,"defaultValue":"2.12.1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия Штурвал (не является версией Kubernetes)","man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":353,"svcOperationCfsParam":"needExternalAddressAPI","label":"Включить vIP для Kubernetes API","dataType":"boolean","valueList":["true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP для доступа к kubernetes API. Пока нельзя выставить false","man":null,"sort":100,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":354,"svcOperationCfsParam":"accessIpListAPI","label":"Access-List для Kubernetes API","dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Access IP List для подключения к Kubernetes API. Указывается массив. Если передан пустой массив, доступ выделяется всем","man":null,"sort":110,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":355,"svcOperationCfsParam":"needExternalAddressIngress","label":"Включить vIP для Kubernetes Ingress","dataType":"boolean","valueList":["true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP для доступа к Ingress","man":null,"sort":120,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":356,"svcOperationCfsParam":"accessIpListIngress","label":"Access-List для Kubernetes Ingress","dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Access IP List для подключения к Ingress. Указывается массив. Если передан пустой массив, доступ выделяется всем","man":null,"sort":130,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/150/109.json b/artifacts/api-meta/prod/operations/150/109.json new file mode 100644 index 0000000..2342f23 --- /dev/null +++ b/artifacts/api-meta/prod/operations/150/109.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":109,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SthutrvalCluster/job/delete/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/150/110.json b/artifacts/api-meta/prod/operations/150/110.json new file mode 100644 index 0000000..56d06b4 --- /dev/null +++ b/artifacts/api-meta/prod/operations/150/110.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":110,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SthutrvalCluster/job/modify/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":362,"svcOperationCfsParam":"controlPlaneCount","label":"Кол-во нод Control Plane","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":9,"minvalue":1,"descr":"Кол-во нод Control Plane","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":363,"svcOperationCfsParam":"workersCount","label":"Кол-во нод Workers","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":99,"minvalue":1,"descr":"Кол-во нод Workers","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":364,"svcOperationCfsParam":"accessIpListAPI","label":"Access-List для Kubernetes API","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Access IP List для подключения к Kubernetes API. Указывается массив. Если передан пустой массив, доступ выделяется всем","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":365,"svcOperationCfsParam":"accessIpListIngress","label":"Access-List для Kubernetes Ingress","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Access IP List для подключения к Ingress. Указывается массив. Если передан пустой массив, доступ выделяется всем","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":563,"svcOperationCfsParam":"appVersion","label":"Версия Штурвал","dataType":"string","valueList":["2.11.0","2.12.1"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия Штурвал (не является версией Kubernetes)
Понижать версию нельзя
Обновиться на несколько минорных нельзя
Невозможно перепрыгнуть не с последней минорной на мажорную
Можно обновиться на несколько патчей","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":637,"svcOperationCfsParam":"controlPlaneSizingDisk","label":"Размер (Gb) для Control Plane","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":638,"svcOperationCfsParam":"workersSizingDisk","label":"Размер (Gb) для Workers","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":58} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/150/173.json b/artifacts/api-meta/prod/operations/150/173.json new file mode 100644 index 0000000..5a22343 --- /dev/null +++ b/artifacts/api-meta/prod/operations/150/173.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":173,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SthutrvalCluster/job/suspend/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/150/174.json b/artifacts/api-meta/prod/operations/150/174.json new file mode 100644 index 0000000..99df9e2 --- /dev/null +++ b/artifacts/api-meta/prod/operations/150/174.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":174,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SthutrvalCluster/job/resume/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/150/179.json b/artifacts/api-meta/prod/operations/150/179.json new file mode 100644 index 0000000..930baaa --- /dev/null +++ b/artifacts/api-meta/prod/operations/150/179.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svcOperation":{"svcOperationId":179,"operation":"update_secrets","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SthutrvalCluster/job/update_secrets/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/150/253.json b/artifacts/api-meta/prod/operations/150/253.json new file mode 100644 index 0000000..3e584fd --- /dev/null +++ b/artifacts/api-meta/prod/operations/150/253.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svcOperation":{"svcOperationId":253,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SthutrvalCluster/job/reconcile/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":58} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/19.list b/artifacts/api-meta/prod/operations/19.list new file mode 100644 index 0000000..a3374b3 --- /dev/null +++ b/artifacts/api-meta/prod/operations/19.list @@ -0,0 +1,6 @@ +suspend 143 +delete 137 +resume 144 +create 136 +modify 207 +reconcile 249 diff --git a/artifacts/api-meta/prod/operations/19/136.json b/artifacts/api-meta/prod/operations/19/136.json new file mode 100644 index 0000000..d1d373a --- /dev/null +++ b/artifacts/api-meta/prod/operations/19/136.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":136,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Org/job/create/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":"`IaaS` - Доступ в Keycloak предоставляется пользователю, который создаёт услугу
`SaaS` - Без доступа к Keycloak","cfsParams":[{"svcOperationCfsParamId":418,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Облако в котором будет развёрнут тенант","man":"Выбрать платформу из списка

**Если список не отображается**
обратитесь к сервис менеджеру с вопросом предоставления ресурсной платформы","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":556,"svcOperationCfsParam":"organizationType","label":"Тип организации","dataType":"string","valueList":["iaas","saas"],"refSvcId":null,"isRequired":true,"defaultValue":"iaas","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Доступ к организации предоставляется только при выборе `iaas`","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/19/137.json b/artifacts/api-meta/prod/operations/19/137.json new file mode 100644 index 0000000..43178ec --- /dev/null +++ b/artifacts/api-meta/prod/operations/19/137.json @@ -0,0 +1 @@ +{"queryDurationMs":47,"svcOperation":{"svcOperationId":137,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Org/job/delete/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":"Удалить возможно только через 14 дней после выполнения операции `suspend`
**ОСТОРЖНО: Удаление приводит к полному удалению всех сущностей внутри этого тенанта**

Если существуют инстансы VDC, Edge, vApp, Vm или Kubernetes-кластер Штурвал, которые были созданы, из ЛК удалены не будут. Необходимо обратиться к `технической поддержке` для удаления инстансов","cfsParams":[]},"runDurationMs":47} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/19/143.json b/artifacts/api-meta/prod/operations/19/143.json new file mode 100644 index 0000000..4d21526 --- /dev/null +++ b/artifacts/api-meta/prod/operations/19/143.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":143,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Org/job/suspend/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":"Операция **не останавливает ВМки** в облаке, но не даёт редактировать все сущности внутри тенанта","cfsParams":[]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/19/144.json b/artifacts/api-meta/prod/operations/19/144.json new file mode 100644 index 0000000..cd3b4d2 --- /dev/null +++ b/artifacts/api-meta/prod/operations/19/144.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svcOperation":{"svcOperationId":144,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Org/job/resume/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/19/207.json b/artifacts/api-meta/prod/operations/19/207.json new file mode 100644 index 0000000..fa26979 --- /dev/null +++ b/artifacts/api-meta/prod/operations/19/207.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":207,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Org/job/modify/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":"Для возможности изменения параметров предварительно необходимо создать **Виртуальный датацентр (VDC)**, потом **Сетевой шлюз периметра (Edge Gateway)**
Также при удалении ipSpaces убедитесь, что все внешние IP удалены. В случае если хоть одна привязка vIP есть, данный ipSpace удалён **не будет**","cfsParams":[{"svcOperationCfsParamId":662,"svcOperationCfsParam":"vIPConfigure","label":"Настройка внешних IP","dataType":"array-map-fixed","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/19/249.json b/artifacts/api-meta/prod/operations/19/249.json new file mode 100644 index 0000000..2624d22 --- /dev/null +++ b/artifacts/api-meta/prod/operations/19/249.json @@ -0,0 +1 @@ +{"queryDurationMs":65,"svcOperation":{"svcOperationId":249,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Org/job/reconcile/view/tags/job/1.0.2/buildWithParameters","descr":"Необходимо для актуализации состояния организации.
Операция приводит инстанс услуги к текущей целевой модели, принятой в Личном Кабинете: обновляет информацию из Cloud Director, производит миграцию состояния услуги до последней версии схемы","man":null,"cfsParams":[]},"runDurationMs":65} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/2.list b/artifacts/api-meta/prod/operations/2.list new file mode 100644 index 0000000..b8bdecc --- /dev/null +++ b/artifacts/api-meta/prod/operations/2.list @@ -0,0 +1,5 @@ +create 74 +modify 76 +resume 98 +delete 75 +suspend 97 diff --git a/artifacts/api-meta/prod/operations/2/74.json b/artifacts/api-meta/prod/operations/2/74.json new file mode 100644 index 0000000..c52c89e --- /dev/null +++ b/artifacts/api-meta/prod/operations/2/74.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":74,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Template/job/create/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":202,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"100","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":203,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"200","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":204,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":205,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":206,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":207,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/2/75.json b/artifacts/api-meta/prod/operations/2/75.json new file mode 100644 index 0000000..91cf7a2 --- /dev/null +++ b/artifacts/api-meta/prod/operations/2/75.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":75,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Template/job/delete/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/2/76.json b/artifacts/api-meta/prod/operations/2/76.json new file mode 100644 index 0000000..694b196 --- /dev/null +++ b/artifacts/api-meta/prod/operations/2/76.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":76,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Template/job/modify/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":208,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":209,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":210,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":211,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/2/97.json b/artifacts/api-meta/prod/operations/2/97.json new file mode 100644 index 0000000..1688d6a --- /dev/null +++ b/artifacts/api-meta/prod/operations/2/97.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":97,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Template/job/suspend/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/2/98.json b/artifacts/api-meta/prod/operations/2/98.json new file mode 100644 index 0000000..9995eee --- /dev/null +++ b/artifacts/api-meta/prod/operations/2/98.json @@ -0,0 +1 @@ +{"queryDurationMs":47,"svcOperation":{"svcOperationId":98,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Template/job/resume/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":47} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/20.list b/artifacts/api-meta/prod/operations/20.list new file mode 100644 index 0000000..8a88f5c --- /dev/null +++ b/artifacts/api-meta/prod/operations/20.list @@ -0,0 +1,4 @@ +create 8 +delete 23 +resume 119 +suspend 118 diff --git a/artifacts/api-meta/prod/operations/20/118.json b/artifacts/api-meta/prod/operations/20/118.json new file mode 100644 index 0000000..d52833d --- /dev/null +++ b/artifacts/api-meta/prod/operations/20/118.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svcOperation":{"svcOperationId":118,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/OrgSaas/job/suspend/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":58} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/20/119.json b/artifacts/api-meta/prod/operations/20/119.json new file mode 100644 index 0000000..d36999d --- /dev/null +++ b/artifacts/api-meta/prod/operations/20/119.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svcOperation":{"svcOperationId":119,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/OrgSaas/job/resume/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/20/23.json b/artifacts/api-meta/prod/operations/20/23.json new file mode 100644 index 0000000..1690fa2 --- /dev/null +++ b/artifacts/api-meta/prod/operations/20/23.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":23,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/OrgSaas/job/delete/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/20/8.json b/artifacts/api-meta/prod/operations/20/8.json new file mode 100644 index 0000000..5dd2c22 --- /dev/null +++ b/artifacts/api-meta/prod/operations/20/8.json @@ -0,0 +1 @@ +{"queryDurationMs":66,"svcOperation":{"svcOperationId":8,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/OrgSaas/job/create/view/tags/job/1.0.0/buildWithParameters","descr":"Создание организации в Cloud Director
Id в клауд директоре создаётся на основе contragentCode","man":"Создание организации в Cloud Director
Id в клауд директоре создаётся на основе contragentCode","cfsParams":[{"svcOperationCfsParamId":185,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование ресурсной платформы","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":66} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/21.list b/artifacts/api-meta/prod/operations/21.list new file mode 100644 index 0000000..189ece2 --- /dev/null +++ b/artifacts/api-meta/prod/operations/21.list @@ -0,0 +1,6 @@ +resume 172 +suspend 171 +modify 112 +create 9 +delete 24 +reconcile 250 diff --git a/artifacts/api-meta/prod/operations/21/112.json b/artifacts/api-meta/prod/operations/21/112.json new file mode 100644 index 0000000..888c03a --- /dev/null +++ b/artifacts/api-meta/prod/operations/21/112.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":112,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vdc/job/modify/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":560,"svcOperationCfsParam":"cpuAllocated","label":"Сколько аллоцировать на VDC ЯДЕР","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"шт","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":561,"svcOperationCfsParam":"memAllocated","label":"Сколько аллоцировать на VDC ОЗУ","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":1024,"minvalue":1,"descr":"gb","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":562,"svcOperationCfsParam":"storageConfig","label":"Конфигурация Storage","dataType":"array-map-fixed","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Первая политика в списке указывается как "По умолчанию"","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/21/171.json b/artifacts/api-meta/prod/operations/21/171.json new file mode 100644 index 0000000..20470cb --- /dev/null +++ b/artifacts/api-meta/prod/operations/21/171.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":171,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vdc/job/suspend/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":"Операция **не останавливает ВМки** в облаке, но не даёт редактировать все сущности внутри VDC","cfsParams":[]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/21/172.json b/artifacts/api-meta/prod/operations/21/172.json new file mode 100644 index 0000000..751f476 --- /dev/null +++ b/artifacts/api-meta/prod/operations/21/172.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":172,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vdc/job/resume/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/21/24.json b/artifacts/api-meta/prod/operations/21/24.json new file mode 100644 index 0000000..8bc3c9f --- /dev/null +++ b/artifacts/api-meta/prod/operations/21/24.json @@ -0,0 +1 @@ +{"queryDurationMs":60,"svcOperation":{"svcOperationId":24,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vdc/job/delete/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":"Удалить возможно только через 14 дней после выполнения операции `suspend`
**ОСТОРЖНО: Удаление приводит к полному удалению всех сущностей внутри этого VDC**

Если существуют инстансы Edge, vApp, Vm или Kubernetes-кластер Штурвал, которые были созданы, из ЛК удалены не будут. Необходимо обратиться к `технической поддержке` для удаления инстансов","cfsParams":[]},"runDurationMs":60} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/21/250.json b/artifacts/api-meta/prod/operations/21/250.json new file mode 100644 index 0000000..53fbc38 --- /dev/null +++ b/artifacts/api-meta/prod/operations/21/250.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":250,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vdc/job/reconcile/view/tags/job/1.0.5/buildWithParameters","descr":"Необходимо для актуализации состояния виртуального ДЦ.
Операция приводит инстанс услуги к текущей целевой модели, принятой в Личном Кабинете: обновляет информацию из Cloud Director, производит миграцию состояния услуги до последней версии схемы","man":null,"cfsParams":[]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/21/9.json b/artifacts/api-meta/prod/operations/21/9.json new file mode 100644 index 0000000..7ebe922 --- /dev/null +++ b/artifacts/api-meta/prod/operations/21/9.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":9,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vdc/job/create/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":30,"svcOperationCfsParam":"organizationUid","label":"UUID Организации","dataType":"uuid","valueList":null,"refSvcId":19,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Для создания VDC предварительно необходимо создать организацию через услугу `Организация в Cloud Director`","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":746,"svcOperationCfsParam":"networkProvider","label":"Зона доступности","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":"organizationUid","isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":335,"svcOperationCfsParam":"providerVdc","label":"Кластер ресурсов","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Свойство ресурсной платформы, которое берётся из UUID Организации","man":"providerGateway Cloud Director. Влияет ресурсы будут предоставлены

getKeyListFromStruct(getResourceRealmConfig(),"vcd.providerVdc")
getKeyListFromStruct(getResourceRealmConfig(),"vcd.providerVdc")

getKeyListFromStruct(getResourceRealmConfig(getStringFromStruct(getInstanceState(params.organizationUid),"params.resourceRealm")), "vcd.providerVdc")

getKeyListFromStruct(getResourceRealmConfig( getValueFromStruct( getInstanceState( params.organizationUid ), "params.resourceRealm" ) ), "vcd.providerVdc")




","sort":30,"dependsOnCfsParams":"organizationUid,networkProvider","isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":397,"svcOperationCfsParam":"cpuGuaranteed","label":"Гарантированная доля ЯДЕР","dataType":"integer > 0","valueList":["20","50","80"],"refSvcId":null,"isRequired":true,"defaultValue":"20","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"% резервирования","man":"Свойство нельзя изменить после создания","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":398,"svcOperationCfsParam":"memGuaranteed","label":"Гарантированная доля ОЗУ","dataType":"integer > 0","valueList":["20","50","80"],"refSvcId":null,"isRequired":true,"defaultValue":"20","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"% резервирования","man":"После создания нельзя изменить","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":557,"svcOperationCfsParam":"cpuAllocated","label":"Сколько аллоцировать на VDC ЯДЕР","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":200,"minvalue":1,"descr":"шт","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":558,"svcOperationCfsParam":"memAllocated","label":"Сколько аллоцировать на VDC ОЗУ","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"20","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4096,"minvalue":1,"descr":"gb","man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":361,"svcOperationCfsParam":"storageConfig","label":"Конфигурация Storage","dataType":"array-map-fixed","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Первая политика в списке указывается как "По умолчанию"","sort":100,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/22.list b/artifacts/api-meta/prod/operations/22.list new file mode 100644 index 0000000..cd3b558 --- /dev/null +++ b/artifacts/api-meta/prod/operations/22.list @@ -0,0 +1,4 @@ +delete 25 +modify 111 +reconcile 252 +create 10 diff --git a/artifacts/api-meta/prod/operations/22/10.json b/artifacts/api-meta/prod/operations/22/10.json new file mode 100644 index 0000000..b42f153 --- /dev/null +++ b/artifacts/api-meta/prod/operations/22/10.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":10,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Nsxt/job/create/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":621,"svcOperationCfsParam":"vdcType","label":"Тип подключаемой VDC","dataType":"string","valueList":["vdc","vdcGroup"],"refSvcId":null,"isRequired":true,"defaultValue":"vdc","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Тип родительской услуги","man":"При выборе vdc обеспечивает сетевую доступность только в рамках этого vdc
При выборе groupvdc обеспечивает сетевую доступность между всеми vdc, которые включены в groupvdc","sort":0,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":8,"svcOperationCfsParam":"vdcUid","label":"UUID Услуги VDC","dataType":"string","valueList":null,"refSvcId":21,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID Услуги `Виртуальный датацентр (vDC)`","man":"Необходимо, если выбран тип подключаемой VDC: `vdc`","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":622,"svcOperationCfsParam":"vdcGroupUid","label":"UUID Услуги Группы VDC","dataType":"string","valueList":null,"refSvcId":29,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID Услуги `Группа виртуальных датацентров (groupvDC)`","man":"Необходимо, если выбран тип подключаемой VDC: `groupvdc`","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":340,"svcOperationCfsParam":"needEnableAVI","label":"Включить ALB","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включение Load Balancer","man":"Параметры `Наименование segroup`, `Кол-во VS на AVI` необходимо также указать","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":341,"svcOperationCfsParam":"virtualServicesCount","label":"Кол-во VS на AVI","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4,"minvalue":1,"descr":"Кол-во виртуальных сервисов, которые выделяются на AVI","man":"Во избежании коллапса пока выделяется до 4
Необходимо указывать, если включён параметр `Включить ALB`","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/22/111.json b/artifacts/api-meta/prod/operations/22/111.json new file mode 100644 index 0000000..45a5226 --- /dev/null +++ b/artifacts/api-meta/prod/operations/22/111.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":111,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Nsxt/job/modify/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":"Для создания SNAT Правила убедитесь, что в организации есть свободные IP
Редактировать кол-во свободных IP можно в услуге `Организация в Cloud Director` -> `modify`","cfsParams":[{"svcOperationCfsParamId":368,"svcOperationCfsParam":"needEnableAVI","label":"Включить ALB","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включение Load Balancer","man":"Параметры `Наименование segroup`, `Кол-во VS на AVI` необходимо также указать","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":369,"svcOperationCfsParam":"virtualServicesCount","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4,"minvalue":1,"descr":"Кол-во виртуальных сервисов, которые выделяются на AVI","man":"Во избежании коллапса пока выделяется до 4
Необходимо указывать, если включён параметр `Включить ALB`","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":371,"svcOperationCfsParam":"needExternalAddressSNAT","label":"Выделить VIP для SNAT","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Создать правило SNAT на подсеть `10.10.102.0/24`","man":"Параметр `ip Space для VIP` станет обязательным, если указан `true`","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":372,"svcOperationCfsParam":"ipSpaceName","label":"ip Space для VIP","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ip Space для внешнего IP

getKeyListFromStruct(getInstanceState(getValueFromStruct(getInstanceState(getValueFromStruct(getInstanceState(), "params.vdcUid")), "params.organizationUid")), "params.vIPConfigure")","man":"Необходимо указывать, если включён параметр `Выделить VIP для SNAT`","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/22/25.json b/artifacts/api-meta/prod/operations/22/25.json new file mode 100644 index 0000000..e185403 --- /dev/null +++ b/artifacts/api-meta/prod/operations/22/25.json @@ -0,0 +1 @@ +{"queryDurationMs":62,"svcOperation":{"svcOperationId":25,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Nsxt/job/delete/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":"Невозможно удалить если routed-сеть в Edge связана с:
- vApp
- VM
- Kubernetes-кластер Штурвал

Запустить операцию возможно, но будет ошибка","cfsParams":[]},"runDurationMs":62} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/22/252.json b/artifacts/api-meta/prod/operations/22/252.json new file mode 100644 index 0000000..4819885 --- /dev/null +++ b/artifacts/api-meta/prod/operations/22/252.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":252,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Nsxt/job/reconcile/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/23.list b/artifacts/api-meta/prod/operations/23.list new file mode 100644 index 0000000..f60732b --- /dev/null +++ b/artifacts/api-meta/prod/operations/23.list @@ -0,0 +1,5 @@ +modify 68 +delete 29 +suspend 27 +resume 28 +create 26 diff --git a/artifacts/api-meta/prod/operations/23/26.json b/artifacts/api-meta/prod/operations/23/26.json new file mode 100644 index 0000000..b271b46 --- /dev/null +++ b/artifacts/api-meta/prod/operations/23/26.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":26,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vm/job/create/view/tags/job/0.0.3/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":33,"svcOperationCfsParam":"vappUid","label":"InstanceUid vApp","dataType":"uuid","valueList":null,"refSvcId":26,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"InstanceUid vApp. vApp должен быть создан","man":"InstanceUid vApp. vApp должен быть создан","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":35,"svcOperationCfsParam":"vmName","label":"Имя ВМ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"vm0001","defaultCompute":null,"func":null,"regex":"^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ВМ. Не поддерживает спец-символы","man":"Имя ВМ. Не поддерживает спец-символы","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":36,"svcOperationCfsParam":"vmCpu","label":"CPU","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"2","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"CPU","man":"CPU","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":37,"svcOperationCfsParam":"vmRam","label":"RAM","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"2","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"RAM (GB)","man":"RAM (GB)","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":38,"svcOperationCfsParam":"vmDisksize","label":"Диск VM","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Размер диска под сервис (GB)","man":"Размер диска под сервис (GB)","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":176,"svcOperationCfsParam":"templateName","label":null,"dataType":"string","valueList":["RockyLinux_9-16G","OracleLinux_9-16G","Ubuntu_24-20G","Ubuntu_22-20G"],"refSvcId":null,"isRequired":true,"defaultValue":"RockyLinux_9-16G","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"ОС","man":"ОС","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":177,"svcOperationCfsParam":"accessIpList","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"79.111.119.78/32 185.247.187.1/32","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Вставить содержимое из 'curl ifconfig.io'
IP адреса в CIDR формате через пробел для настройки аксес листов","man":"IP адреса в CIDR формате через пробел для настройки аксес листов","sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":406,"svcOperationCfsParam":"ipSpaceName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Брать из свойств ресурсной платформы
.vcd.ipSpace

Имя IP-space для выделения внешнего IP (IP выделяется обязательно)","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/23/27.json b/artifacts/api-meta/prod/operations/23/27.json new file mode 100644 index 0000000..32d82df --- /dev/null +++ b/artifacts/api-meta/prod/operations/23/27.json @@ -0,0 +1 @@ +{"queryDurationMs":103,"svcOperation":{"svcOperationId":27,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vm/job/suspend/view/tags/job/0.0.3/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":103} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/23/28.json b/artifacts/api-meta/prod/operations/23/28.json new file mode 100644 index 0000000..6928bdd --- /dev/null +++ b/artifacts/api-meta/prod/operations/23/28.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":28,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vm/job/resume/view/tags/job/0.0.3/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/23/29.json b/artifacts/api-meta/prod/operations/23/29.json new file mode 100644 index 0000000..66ba7cb --- /dev/null +++ b/artifacts/api-meta/prod/operations/23/29.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":29,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vm/job/delete/view/tags/job/0.0.3/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/23/68.json b/artifacts/api-meta/prod/operations/23/68.json new file mode 100644 index 0000000..45e55b9 --- /dev/null +++ b/artifacts/api-meta/prod/operations/23/68.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":68,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vm/job/modify/view/tags/job/0.0.3/buildWithParameters","descr":"Операция автоматически останавливает ВМ.","man":"Операция автоматически останавливает ВМ.","cfsParams":[{"svcOperationCfsParamId":186,"svcOperationCfsParam":"vmCpu","label":"CPU","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"CPU","man":"CPU","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":187,"svcOperationCfsParam":"vmRam","label":"RAM","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"RAM","man":"RAM","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":188,"svcOperationCfsParam":"vmDisksize","label":"Диск VM","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Размер диска под сервис (GB)","man":"Размер диска под сервис (GB)","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":189,"svcOperationCfsParam":"accessIpList","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"IP адреса в CIDR формате через пробел для настройки аксес листов","man":"IP адреса в CIDR формате через пробел для настройки аксес листов","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/24.list b/artifacts/api-meta/prod/operations/24.list new file mode 100644 index 0000000..e69de29 diff --git a/artifacts/api-meta/prod/operations/25.list b/artifacts/api-meta/prod/operations/25.list new file mode 100644 index 0000000..66a862f --- /dev/null +++ b/artifacts/api-meta/prod/operations/25.list @@ -0,0 +1,3 @@ +create 56 +delete 57 +modify 197 diff --git a/artifacts/api-meta/prod/operations/25/197.json b/artifacts/api-meta/prod/operations/25/197.json new file mode 100644 index 0000000..a070f8b --- /dev/null +++ b/artifacts/api-meta/prod/operations/25/197.json @@ -0,0 +1 @@ +{"queryDurationMs":65,"svcOperation":{"svcOperationId":197,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Ip/job/modify/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":627,"svcOperationCfsParam":"serviceUid","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":628,"svcOperationCfsParam":"ipSpaceName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":629,"svcOperationCfsParam":"dnatCreate","label":null,"dataType":"boolean","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":630,"svcOperationCfsParam":"snatCreate","label":null,"dataType":"boolean","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":631,"svcOperationCfsParam":"internalPortAccess","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":632,"svcOperationCfsParam":"internalAddrAccess","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":66} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/25/56.json b/artifacts/api-meta/prod/operations/25/56.json new file mode 100644 index 0000000..d00caef --- /dev/null +++ b/artifacts/api-meta/prod/operations/25/56.json @@ -0,0 +1 @@ +{"queryDurationMs":61,"svcOperation":{"svcOperationId":56,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Ip/job/create/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":140,"svcOperationCfsParam":"serviceUid","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":336,"svcOperationCfsParam":"ipSpaceName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Тип ip Space (internet-ipv4-v1 / internet-antiddos-v1 / internet-no-antiddos-v1)","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":141,"svcOperationCfsParam":"dnatCreate","label":null,"dataType":"boolean","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходимо создать DNAT-правило.","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":143,"svcOperationCfsParam":"snatCreate","label":null,"dataType":"boolean","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходимо создать SNAT-правило.
","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":142,"svcOperationCfsParam":"internalPortAccess","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"5432","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Порт для связки ната с адресом. Несколько значений можно передавать через пробел. Если передать all, то dnat будет на все порты. Требует dnatCreate=true
","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":144,"svcOperationCfsParam":"internalAddrAccess","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Внутренний адрес для связки ната. Требует dnatCreate=true или snatCreate=true","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":324,"svcOperationCfsParam":"fromServiceNamespace","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Namespace составной услуги (для отображения правил FW)","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":325,"svcOperationCfsParam":"fromServiceCloudEdgeName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Edge составной услуги (указывать, если resourceRealm связан с CloudDirector)","man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":326,"svcOperationCfsParam":"fromServiceCloudVdcName","label":null,"dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Vdc составной услуги (указывать, если resourceRealm связан с CloudDirector)","man":null,"sort":100,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":327,"svcOperationCfsParam":"fromServiceCloudOrgName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Org составной услуги (указывать, если resourceRealm связан с CloudDirector)","man":null,"sort":110,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":328,"svcOperationCfsParam":"fromServiceCloudVmwareUrl","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Api-Url составной услуги (указывать, если resourceRealm связан с CloudDirector)","man":null,"sort":120,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":624,"svcOperationCfsParam":"fromServiceCloudEdgeScope","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":130,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":626,"svcOperationCfsParam":"fromServiceVdcGroupName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":140,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":488,"svcOperationCfsParam":"resourceRealm","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":200,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":63} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/25/57.json b/artifacts/api-meta/prod/operations/25/57.json new file mode 100644 index 0000000..287e5ec --- /dev/null +++ b/artifacts/api-meta/prod/operations/25/57.json @@ -0,0 +1 @@ +{"queryDurationMs":66,"svcOperation":{"svcOperationId":57,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Ip/job/delete/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":66} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/26.list b/artifacts/api-meta/prod/operations/26.list new file mode 100644 index 0000000..e534937 --- /dev/null +++ b/artifacts/api-meta/prod/operations/26.list @@ -0,0 +1,4 @@ +resume 209 +suspend 208 +delete 70 +create 69 diff --git a/artifacts/api-meta/prod/operations/26/208.json b/artifacts/api-meta/prod/operations/26/208.json new file mode 100644 index 0000000..ca33405 --- /dev/null +++ b/artifacts/api-meta/prod/operations/26/208.json @@ -0,0 +1 @@ +{"queryDurationMs":65,"svcOperation":{"svcOperationId":208,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vapp/job/suspend/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":65} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/26/209.json b/artifacts/api-meta/prod/operations/26/209.json new file mode 100644 index 0000000..05d68cb --- /dev/null +++ b/artifacts/api-meta/prod/operations/26/209.json @@ -0,0 +1 @@ +{"queryDurationMs":83,"svcOperation":{"svcOperationId":209,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vapp/job/resume/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":83} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/26/69.json b/artifacts/api-meta/prod/operations/26/69.json new file mode 100644 index 0000000..d371aa7 --- /dev/null +++ b/artifacts/api-meta/prod/operations/26/69.json @@ -0,0 +1 @@ +{"queryDurationMs":194,"svcOperation":{"svcOperationId":69,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vapp/job/create/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":623,"svcOperationCfsParam":"vdcUid","label":"UUID Услуги VDC","dataType":"uuid","valueList":null,"refSvcId":21,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID Услуги `Виртуальный датацентр (vDC)`","man":"В каких ресурсах будет создан виртуальный каталог","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":190,"svcOperationCfsParam":"nsxtUid","label":"UUID Услуги Edge","dataType":"uuid","valueList":null,"refSvcId":22,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID Услуги `Сетевой шлюз периметра (Edge)`","man":"К какой сети может быть подключен виртуальный каталог","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":191,"svcOperationCfsParam":"vappName","label":"Имя vApp","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^[a-z0-9][a-z0-9.-]{3,61}[a-z0-9]$","uniqueScope":null,"maxlength":null,"minlength":3,"maxvalue":null,"minvalue":null,"descr":"Уникальное в рамках организации","man":"Имеет строгую маску `^[a-z0-9][a-z0-9.-]{3,61}[a-z0-9]$`

Используется в формировании DNS-Имени (для виртуальных машин)","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":195} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/26/70.json b/artifacts/api-meta/prod/operations/26/70.json new file mode 100644 index 0000000..ed29fa8 --- /dev/null +++ b/artifacts/api-meta/prod/operations/26/70.json @@ -0,0 +1 @@ +{"queryDurationMs":129,"svcOperation":{"svcOperationId":70,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vapp/job/delete/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":129} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/27.list b/artifacts/api-meta/prod/operations/27.list new file mode 100644 index 0000000..5c28206 --- /dev/null +++ b/artifacts/api-meta/prod/operations/27.list @@ -0,0 +1,5 @@ +modify 104 +suspend 103 +delete 101 +resume 102 +create 100 diff --git a/artifacts/api-meta/prod/operations/27/100.json b/artifacts/api-meta/prod/operations/27/100.json new file mode 100644 index 0000000..ab29040 --- /dev/null +++ b/artifacts/api-meta/prod/operations/27/100.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svcOperation":{"svcOperationId":100,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VmV2/job/create/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":301,"svcOperationCfsParam":"serverListJson","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[{}]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":65536,"minlength":10,"maxvalue":null,"minvalue":null,"descr":"Необходимо изменить vappUid и ipSpaceName
Пример конфигурации взять по ссылке ниже

Объект серверов вида [{}] (Map(Object))
Более подробнее смотреть в README.md (https://gitea.mgmt.nubes.ru/cloudServices/vcVmV2)","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":58} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/27/101.json b/artifacts/api-meta/prod/operations/27/101.json new file mode 100644 index 0000000..ad2663c --- /dev/null +++ b/artifacts/api-meta/prod/operations/27/101.json @@ -0,0 +1 @@ +{"queryDurationMs":59,"svcOperation":{"svcOperationId":101,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VmV2/job/delete/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/27/102.json b/artifacts/api-meta/prod/operations/27/102.json new file mode 100644 index 0000000..9954c9e --- /dev/null +++ b/artifacts/api-meta/prod/operations/27/102.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":102,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VmV2/job/resume/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/27/103.json b/artifacts/api-meta/prod/operations/27/103.json new file mode 100644 index 0000000..f995a80 --- /dev/null +++ b/artifacts/api-meta/prod/operations/27/103.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":103,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VmV2/job/suspend/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/27/104.json b/artifacts/api-meta/prod/operations/27/104.json new file mode 100644 index 0000000..c903370 --- /dev/null +++ b/artifacts/api-meta/prod/operations/27/104.json @@ -0,0 +1 @@ +{"queryDurationMs":62,"svcOperation":{"svcOperationId":104,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VmV2/job/modify/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":302,"svcOperationCfsParam":"serverListJson","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[{}]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":65536,"minlength":10,"maxvalue":null,"minvalue":null,"descr":"Объект серверов вида [{}] (Map(Object))
Более подробнее смотреть в README.md (https://gitea.mgmt.nubes.ru/cloudServices/vcVmV2)","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":63} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/28.list b/artifacts/api-meta/prod/operations/28.list new file mode 100644 index 0000000..bcf41a3 --- /dev/null +++ b/artifacts/api-meta/prod/operations/28.list @@ -0,0 +1,6 @@ +delete 133 +suspend 134 +resume 135 +redeploy 164 +modify 159 +create 132 diff --git a/artifacts/api-meta/prod/operations/28/132.json b/artifacts/api-meta/prod/operations/28/132.json new file mode 100644 index 0000000..f1a5698 --- /dev/null +++ b/artifacts/api-meta/prod/operations/28/132.json @@ -0,0 +1 @@ +{"queryDurationMs":65,"svcOperation":{"svcOperationId":132,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VmV3/job/create/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":"# Документация по использованию услуги развёртывания ВМ в Личном кабинете

Данный сервис позволяет разворачивать виртуальные машины (ВМ) непосредственно из Личного кабинета (ЛК).

## Доступные операции
- **create** — Создание виртуальной машины
- **delete** — Удаление виртуальной машины
- **resume** — Запуск виртуальной машины
- **suspend** — Остановка виртуальной машины

---

## Параметры для развёртывания ВМ

### Обязательные параметры:

**vappUid**
UUID vApp, в которой будет создаваться виртуальная машина.
*Пример: WZ00400*

**vmName**
Уникальное имя виртуальной машины.
*Пример: test-vm*

**vmCpu**
Количество ядер процессора. Должно быть больше 0.
*Пример: 1*

**vmRam**
Объем оперативной памяти в гигабайтах. Должно быть больше 0.
*Пример: 1*


**accessPortList**
Белый список портов для доступа к виртуальной машине извне в формате JSON.
*Пример: ["22","10050]*

**imageVm**
Образ операционной системы для развёртывания.
*Доступные значения: RockyLinux_9-16G-cloudinit, Ubuntu_22-20G, Debian_13-20G*

**userLogin**
Логин пользователя для SSH-доступа.
*По умолчанию: myuser*

**userPublicKey**
Публичный SSH-ключ пользователя в формате OpenSSH.
*Пример: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...*

**needAddZabbixTemplate**
Значение истина\\лож определяющее будет ли добавлен хост в zabbix.
*Пример: true*

### Опциональные параметры:

**accessIpList**
Белый список IP-адресов для доступа к виртуальной машине в формате JSON. Если оставить пустым, вм будет доступена со всех адресов.
*Пример: ["192.168.1.1", "10.0.0.5"]*

**vmDisk**
Размер дополнительного диска в гигабайтах. Должно быть больше 0.
*Пример: 50*

**ipSpaceName**
Внешний IP-адрес. Если не требуется — укажите значение "no-needed".

**cloudInit**
YAML-скрипт для кастомизации системы через cloud-init.

---

## Доступные образы операционных систем

### RockyLinux_9-16G-cloudinit
Базовый образ на основе Rocky Linux 9 (Rocky-9.6-x86_64-minimal) для серверных задач.
- Размер системного диска: 16 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

### Ubuntu_22-20G
Образ на основе Ubuntu Server 22.04 LTS для облачного окружения.
- Размер системного диска: 20 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

### Debian_13-20G
Образ на основе Debian 13 (Trixie) для стабильной серверной работы.
- Размер системного диска: 20 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

---

## Пример использования Cloud-init

```yaml
users:
- name: myuser
sudo: ALL=(ALL) NOPASSWD:ALL
groups: sudo
shell: /bin/bash
ssh-authorized-keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...

packages:
- nginx

runcmd:
- systemctl enable --now nginx
- systemctl restart nginx
```

---

## Результат выполнения

После успешного развёртывания в Личном кабинете появится новая виртуальная машина с заданными характеристиками. SSH-доступ осуществляется с использованием указанных логина и публичного ключа.

---

## Важные примечания

### Особенности работы:
- Для отключения внешнего IP укажите значение "no-needed" в параметре ipSpaceName
- Параметр cloudInit является опциональным

### Ограничения:
- Не рекомендуется использовать продолжительные инструкции в cloud-init (таймаут 5 минут)
- Не поддерживается запись файлов через cloud-init
- Не реализовано создание резервных копий ВМ

---

## Диагностика проблем с cloud-init

### Основной лог-файл:
```bash
/var/log/cloud-init.log
```

### Пакет не устанавливается:
- Проверьте доступность пакета в репозитории
- Убедитесь в правильности написания имени пакета
- Попробуйте установить вручную: `apt install <имя_пакета>` (Debian/Ubuntu) или `dnf install <имя_пакета>` (Rocky Linux)

### Команда не выполняется:
- Проверьте наличие требуемой утилиты в системе
- Убедитесь в правильности синтаксиса команды
- Попробуйте выполнить команду вручную для диагностики","cfsParams":[{"svcOperationCfsParamId":407,"svcOperationCfsParam":"vappUid","label":"UUID vApp","dataType":"uuid","valueList":null,"refSvcId":26,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":408,"svcOperationCfsParam":"vmName","label":"Имя ВМ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":null,"func":null,"regex":"^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":409,"svcOperationCfsParam":"vmCpu","label":"Кол-во ядер","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":64,"minvalue":1,"descr":"шт","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":410,"svcOperationCfsParam":"vmRam","label":"Кол-во ОЗУ","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":256,"minvalue":1,"descr":"Gb","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":411,"svcOperationCfsParam":"vmDisk","label":"Размер дополнительного диска","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?:$|(?:0|[1-9]\\d{0,2}|1\\d{3}|20(?:[0-3]\\d|4[0-8])))$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Основной диск у vm зависит от образа (см. документацию)
Если необходимо дополнительное место для vm, введите колличество Gb в эту форму","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":412,"svcOperationCfsParam":"ipSpaceName","label":"Выделить внешний IP","dataType":"string","valueList":["no-needed","internet-antiddos-v1","internet-no-antiddos-v1","internet-ipv4-v1"],"refSvcId":null,"isRequired":false,"defaultValue":"no-needed","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"no-needed, без внешнего ip
internet-antiddos-v1, с функцией защиты от ddos атак
internet-no-antiddos-v1, с функцией защиты от ddos атак
internet-ipv4-v1 тестовое простанство dev","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":413,"svcOperationCfsParam":"accessIpList","label":"Белый список подключения к ВМ","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?:$|\\[\\s*(?:\"(?:\\d{1,3}\\.){3}\\d{1,3}(?:\\/\\d{1,2})?\"(?:\\s*,\\s*\"(?:\\d{1,3}\\.){3}\\d{1,3}(?:\\/\\d{1,2})?\")*)\\s*\\])$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Формат массива
Каким адресам будет предоставлен доступ до вм

Требует выделенного внешнего IP
Если ничего не передано, то выставлено ["0.0.0.0/0"]","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":448,"svcOperationCfsParam":"accessPortList","label":"По каким портам открыть доступ к ВМ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[\"22\"]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"По каким портам открыть доступ к ВМ.
Порты 22, 10050 проставляются автоматически
Пока доступно:
22 - SSH,
80 - HTTP,
443 - HTTPS,
10050 - ZABBIX","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":414,"svcOperationCfsParam":"imageVm","label":"Образ ВМ","dataType":"string","valueList":["RockyLinux_9-16G-cloudinit","Ubuntu_22-20G","Debian_13-20G","Ubuntu_22_cuda13.1.1-16G"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":416,"svcOperationCfsParam":"userLogin","label":"Логин для подключения","dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"myuser","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Учётка SSH","man":null,"sort":180,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":417,"svcOperationCfsParam":"userPublicKey","label":"Публичная часть SSH-Ключа","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Публичная часть SSH-Ключа для пользователя","man":null,"sort":190,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":415,"svcOperationCfsParam":"cloudInit","label":"Шаблон Cloud-Init","dataType":"yaml","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Можно передать создание дополнительных пользователей.
На текущий момент не реализовано выполнения в cloud-init, установки пакетов, выполнения команд и записи файлов.","man":null,"sort":200,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":449,"svcOperationCfsParam":"needAddZabbixTemplate","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Поле позволяет автоматически добавить новый хост в систему мониторинга Zabbix. После добавления вы сможете в реальном времени просматривать все метрики производительности хоста.","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":67} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/28/133.json b/artifacts/api-meta/prod/operations/28/133.json new file mode 100644 index 0000000..df19136 --- /dev/null +++ b/artifacts/api-meta/prod/operations/28/133.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":133,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VmV3/job/delete/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/28/134.json b/artifacts/api-meta/prod/operations/28/134.json new file mode 100644 index 0000000..f3244cb --- /dev/null +++ b/artifacts/api-meta/prod/operations/28/134.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":134,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VmV3/job/suspend/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/28/135.json b/artifacts/api-meta/prod/operations/28/135.json new file mode 100644 index 0000000..2066f4d --- /dev/null +++ b/artifacts/api-meta/prod/operations/28/135.json @@ -0,0 +1 @@ +{"queryDurationMs":71,"svcOperation":{"svcOperationId":135,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VmV3/job/resume/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":71} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/28/159.json b/artifacts/api-meta/prod/operations/28/159.json new file mode 100644 index 0000000..9c7fb97 --- /dev/null +++ b/artifacts/api-meta/prod/operations/28/159.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":159,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VmV3/job/modify/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":493,"svcOperationCfsParam":"vmCpu","label":"Кол-во ядер","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":64,"minvalue":1,"descr":"шт","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":494,"svcOperationCfsParam":"vmRam","label":"Кол-во ОЗУ","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":256,"minvalue":1,"descr":"Gb","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":495,"svcOperationCfsParam":"vmDisk","label":"Размер дополнительного диска","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?:$|(?:0|[1-9]\\d{0,2}|1\\d{3}|20(?:[0-3]\\d|4[0-8])))$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Основной диск у vm зависит от образа (см. документацию)
Если необходимо дополнительное место для vm, введите колличество Gb в эту форму","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":496,"svcOperationCfsParam":"ipSpaceName","label":"Выделить внешний IP","dataType":"string","valueList":["no-needed","internet-antiddos-v1","internet-no-antiddos-v1","internet-ipv4-v1"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"no-needed, без внешнего ip
internet-antiddos-v1, с функцией защиты от ddos атак
internet-no-antiddos-v1, с функцией защиты от ddos атак
internet-ipv4-v1 тестовое простанство dev","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":497,"svcOperationCfsParam":"accessIpList","label":"Белый список подключения к ВМ","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Формат массива
Каким адресам будет предоставлен доступ до вм

Требует выделенного внешнего IP
Если ничего не передано, то выставлено ["0.0.0.0/0"]","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":498,"svcOperationCfsParam":"accessPortList","label":"По каким портам открыть доступ к ВМ","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Формат массива
По каким портам открыть доступ к ВМ.
Пока доступно:
22 - SSH,
80 - HTTP,
443 - HTTPS,
10050 - ZABBIX","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":499,"svcOperationCfsParam":"needAddZabbixTemplate","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/28/164.json b/artifacts/api-meta/prod/operations/28/164.json new file mode 100644 index 0000000..a3a6bf1 --- /dev/null +++ b/artifacts/api-meta/prod/operations/28/164.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":164,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VmV3/job/redeploy/view/tags/job/0.0.8/buildWithParameters","descr":"Полная потеря данных гарантирована
Но будет полностью сброшенная машина","man":null,"cfsParams":[{"svcOperationCfsParamId":509,"svcOperationCfsParam":"vmName","label":"Имя ВМ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":510,"svcOperationCfsParam":"vmCpu","label":"Кол-во ядер","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":64,"minvalue":1,"descr":"шт","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":511,"svcOperationCfsParam":"vmRam","label":"Кол-во ОЗУ","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":256,"minvalue":1,"descr":"Gb","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":512,"svcOperationCfsParam":"vmDisk","label":"Размер дополнительного диска","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?:$|(?:0|[1-9]\\d{0,2}|1\\d{3}|20(?:[0-3]\\d|4[0-8])))$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Основной диск у vm зависит от образа (см. документацию)
Если необходимо дополнительное место для vm, введите колличество Gb в эту форму","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":513,"svcOperationCfsParam":"ipSpaceName","label":"Выделить внешний IP","dataType":"string","valueList":["no-needed","internet-antiddos-v1","internet-no-antiddos-v1","internet-ipv4-v1"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"no-needed, без внешнего ip
internet-antiddos-v1, с функцией защиты от ddos атак
internet-no-antiddos-v1, с функцией защиты от ddos атак
internet-ipv4-v1 тестовое простанство dev","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":514,"svcOperationCfsParam":"accessIpList","label":"Белый список подключения к ВМ","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?:$|\\[\\s*(?:\"(?:\\d{1,3}\\.){3}\\d{1,3}(?:\\/\\d{1,2})?\"(?:\\s*,\\s*\"(?:\\d{1,3}\\.){3}\\d{1,3}(?:\\/\\d{1,2})?\")*)\\s*\\])$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Формат массива
Каким адресам будет предоставлен доступ до вм

Требует выделенного внешнего IP
Если ничего не передано, то выставлено ["0.0.0.0/0"]","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":520,"svcOperationCfsParam":"accessPortList","label":"По каким портам открыть доступ к ВМ","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"По каким портам открыть доступ к ВМ.
Порты 22, 10050 проставляются автоматически
Пока доступно:
22 - SSH,
80 - HTTP,
443 - HTTPS,
10050 - ZABBIX","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":515,"svcOperationCfsParam":"imageVm","label":"Образ ВМ","dataType":"string","valueList":["RockyLinux_9-16G-cloudinit","Ubuntu_22-20G","Debian_13-20G"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":516,"svcOperationCfsParam":"userLogin","label":"Логин для подключения","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Учётка SSH","man":null,"sort":180,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":517,"svcOperationCfsParam":"userPublicKey","label":"Публичная часть SSH-Ключа","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Публичная часть SSH-Ключа для пользователя","man":null,"sort":190,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":518,"svcOperationCfsParam":"cloudInit","label":"Шаблон Cloud-Init","dataType":"yaml","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Можно передать создание дополнительных пользователей.
На текущий момент не реализовано выполнения в cloud-init, установки пакетов, выполнения команд и записи файлов.","man":null,"sort":200,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":519,"svcOperationCfsParam":"needAddZabbixTemplate","label":"Поставить VM на мониторинг","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Поле позволяет автоматически добавить новый хост в систему мониторинга Zabbix. После добавления вы сможете в реальном времени просматривать все метрики производительности хоста.","man":null,"sort":300,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/29.list b/artifacts/api-meta/prod/operations/29.list new file mode 100644 index 0000000..d401986 --- /dev/null +++ b/artifacts/api-meta/prod/operations/29.list @@ -0,0 +1,5 @@ +remove_vdc 193 +delete 195 +reconcile 251 +create 191 +add_vdc 192 diff --git a/artifacts/api-meta/prod/operations/29/191.json b/artifacts/api-meta/prod/operations/29/191.json new file mode 100644 index 0000000..ff31615 --- /dev/null +++ b/artifacts/api-meta/prod/operations/29/191.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":191,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VdcGroup/job/create/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"**VDC Группа** нужна для объединения всех VDC в организации в одну логическую группу.
Это позволит, к примеру, создать **общую сеть** для всех VDC в организации

- Для создания группы VDC необходимо указать **инстанс** услуги VDC (`Виртуальный датацентр`)
- **Важный момент** - удалить эту VDC из группы нельзя. Если такая потребность появится, необходимо будет **ПОЛНОСТЬЮ** удалить группу VDC и уже потом создать новую","cfsParams":[{"svcOperationCfsParamId":618,"svcOperationCfsParam":"vdcUid","label":"UUID VDC","dataType":"uuid","valueList":null,"refSvcId":21,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/29/192.json b/artifacts/api-meta/prod/operations/29/192.json new file mode 100644 index 0000000..5178a39 --- /dev/null +++ b/artifacts/api-meta/prod/operations/29/192.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":192,"operation":"add_vdc","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VdcGroup/job/add_vdc/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"**Не нужно** выбирать UUID VDC, который уже был добавлен в группу","cfsParams":[{"svcOperationCfsParamId":619,"svcOperationCfsParam":"vdcUid","label":"Какой VDC добавить в группу","dataType":"uuid","valueList":null,"refSvcId":21,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/29/193.json b/artifacts/api-meta/prod/operations/29/193.json new file mode 100644 index 0000000..d76c2da --- /dev/null +++ b/artifacts/api-meta/prod/operations/29/193.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":193,"operation":"remove_vdc","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VdcGroup/job/remove_vdc/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":620,"svcOperationCfsParam":"vdcName","label":"Какой VDC удалить из группы","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/29/195.json b/artifacts/api-meta/prod/operations/29/195.json new file mode 100644 index 0000000..4da3daf --- /dev/null +++ b/artifacts/api-meta/prod/operations/29/195.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":195,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VdcGroup/job/delete/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/29/251.json b/artifacts/api-meta/prod/operations/29/251.json new file mode 100644 index 0000000..e18e819 --- /dev/null +++ b/artifacts/api-meta/prod/operations/29/251.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":251,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VdcGroup/job/reconcile/view/tags/job/0.0.2/buildWithParameters","descr":"Необходимо для актуализации состояния группы датацентров.
Операция приводит инстанс услуги к текущей целевой модели, принятой в Личном Кабинете: обновляет информацию из Cloud Director, производит миграцию состояния услуги до последней версии схемы","man":null,"cfsParams":[]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/32.list b/artifacts/api-meta/prod/operations/32.list new file mode 100644 index 0000000..a4500d6 --- /dev/null +++ b/artifacts/api-meta/prod/operations/32.list @@ -0,0 +1,2 @@ +create 32 +delete 33 diff --git a/artifacts/api-meta/prod/operations/32/32.json b/artifacts/api-meta/prod/operations/32/32.json new file mode 100644 index 0000000..6c1077b --- /dev/null +++ b/artifacts/api-meta/prod/operations/32/32.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":32,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesProd/job/vm/job/pgsqlStd/job/serviceCreate/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":43,"svcOperationCfsParam":"vdcUid","label":"InstanceUid VDC","dataType":"uuid","valueList":null,"refSvcId":21,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"InstanceUid vdc. Vdc должен быть создан
","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":44,"svcOperationCfsParam":"nsxtUid","label":"InstanceUid NSXT","dataType":"uuid","valueList":null,"refSvcId":22,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"InstanceUid nsxt. Nsxt должен быть создан
","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":45,"svcOperationCfsParam":"vmUid","label":"InstanceUid ВМ","dataType":"uuid","valueList":null,"refSvcId":23,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"InstanceUid ВМ. ВМ должна быть создана
","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":46,"svcOperationCfsParam":"userDb","label":"Наименование Базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"servicedb","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Наименование Базы данных
","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":47,"svcOperationCfsParam":"userLogin","label":"Пользователь базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"serviceuser","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пользователь базы данных
","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":48,"svcOperationCfsParam":"userPassword","label":"Пароль от доступа к Базе данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"fj29gm48fm!d374mc9","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пароль от доступа к Базе данных
","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":859,"svcOperationCfsParam":"resourceRealm","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Ресурсная платформа","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/32/33.json b/artifacts/api-meta/prod/operations/32/33.json new file mode 100644 index 0000000..d0384b7 --- /dev/null +++ b/artifacts/api-meta/prod/operations/32/33.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":33,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesProd/job/vm/job/pgsqlStd/job/serviceDelete/job/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/50.list b/artifacts/api-meta/prod/operations/50.list new file mode 100644 index 0000000..69c94f2 --- /dev/null +++ b/artifacts/api-meta/prod/operations/50.list @@ -0,0 +1,6 @@ +delete 17 +restart 66 +suspend 128 +resume 129 +modify 67 +create 16 diff --git a/artifacts/api-meta/prod/operations/50/128.json b/artifacts/api-meta/prod/operations/50/128.json new file mode 100644 index 0000000..6daccd7 --- /dev/null +++ b/artifacts/api-meta/prod/operations/50/128.json @@ -0,0 +1 @@ +{"queryDurationMs":60,"svcOperation":{"svcOperationId":128,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Nextcloud/job/suspend/view/tags/job/0.0.9/buildWithParameters","descr":"Не работает из за проблемы с отсуствием механизма зануления реплики (в вейлюсах нельзя задать количство реплик)","man":null,"cfsParams":[]},"runDurationMs":60} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/50/129.json b/artifacts/api-meta/prod/operations/50/129.json new file mode 100644 index 0000000..2ca05f2 --- /dev/null +++ b/artifacts/api-meta/prod/operations/50/129.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":129,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Nextcloud/job/resume/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/50/16.json b/artifacts/api-meta/prod/operations/50/16.json new file mode 100644 index 0000000..85fa823 --- /dev/null +++ b/artifacts/api-meta/prod/operations/50/16.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":16,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Nextcloud/job/create/view/tags/job/0.0.9/buildWithParameters","descr":"Ресурсная платформа берётся из PSQL UUID","man":"DEV-Ветка сборки Nextcloud","cfsParams":[{"svcOperationCfsParamId":564,"svcOperationCfsParam":"psqlUid","label":"Кластер услуги k8sPgsql","dataType":"uuid","valueList":null,"refSvcId":90,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":6,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":570,"svcOperationCfsParam":"redisUid","label":"Кластер услуги k8sRedis","dataType":"uuid","valueList":null,"refSvcId":91,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":7,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":21,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Наименование домена. Если будет указан FQDN, то происходят проверки DNS. Если указан поддомен, то будет добавлен в зону services.ngcloud.ru
Можно указать клиентскую DNS-Запись. Важно, чтобы запись смотрела на Ingress кластера","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":569,"svcOperationCfsParam":"appVersion","label":"Версия Nextcloud","dataType":null,"valueList":["32.0.1"],"refSvcId":null,"isRequired":true,"defaultValue":"32.0.1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":99,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1000","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili). 1 ядро = 1000 Mili","man":"Квота ядра пода (Указывается в mili). 1 ядро = 1000 Mili","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":100,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1024","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":1024,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":101,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"2","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":2,"descr":"Квота диска (Указывается в GIGAbytes)
Диск не может быть меньше 2G (!)","man":"Квота диска (Указывается в GIGAbytes)","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":470,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":["1"],"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов
Не может пока быть больше одного, так как нужны SC под RWMany","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":192,"svcOperationCfsParam":"documentServer","label":"Сервер документов","dataType":"string","valueList":["collabora"],"refSvcId":null,"isRequired":true,"defaultValue":"collabora","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбор сервера документов (onlyoffice)/(collabora). onlyoffice пока не доступен
Размер пода collabora:
1.8 ядра. 2Gi ОЗУ","man":"Выбор сервера документов (onlyoffice)/(collabora). onlyoffice пока не доступен","sort":100,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/50/17.json b/artifacts/api-meta/prod/operations/50/17.json new file mode 100644 index 0000000..49d22cc --- /dev/null +++ b/artifacts/api-meta/prod/operations/50/17.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":17,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Nextcloud/job/delete/view/tags/job/0.0.9/buildWithParameters","descr":"DEV-Ветка удаления Nextcloud","man":"DEV-Ветка удаления Nextcloud","cfsParams":[]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/50/66.json b/artifacts/api-meta/prod/operations/50/66.json new file mode 100644 index 0000000..c307acb --- /dev/null +++ b/artifacts/api-meta/prod/operations/50/66.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":66,"operation":"restart","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Nextcloud/job/restart/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/50/67.json b/artifacts/api-meta/prod/operations/50/67.json new file mode 100644 index 0000000..303c3c9 --- /dev/null +++ b/artifacts/api-meta/prod/operations/50/67.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":67,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Nextcloud/job/modify/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":178,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili)","man":"Квота ядра пода (Указывается в mili)","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":179,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":180,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":547,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":["1"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов.
Не может пока быть больше одного, так как нужны SC под RWMany","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":571,"svcOperationCfsParam":"appVersion","label":"Версия Nextcloud","dataType":"string","valueList":["32.0.1"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Нельзя обновляться сразу через несколько версий сразу","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/81.list b/artifacts/api-meta/prod/operations/81.list new file mode 100644 index 0000000..43104aa --- /dev/null +++ b/artifacts/api-meta/prod/operations/81.list @@ -0,0 +1,2 @@ +delete 13 +create 12 diff --git a/artifacts/api-meta/prod/operations/81/12.json b/artifacts/api-meta/prod/operations/81/12.json new file mode 100644 index 0000000..dd3ae6d --- /dev/null +++ b/artifacts/api-meta/prod/operations/81/12.json @@ -0,0 +1 @@ +{"queryDurationMs":90,"svcOperation":{"svcOperationId":12,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Superset/job/create/view/tags/job/0.0.8/buildWithParameters","descr":"DEV-Ветка сборки Superset","man":"DEV-Ветка сборки Superset","cfsParams":[{"svcOperationCfsParamId":14,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":109,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":96,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili). 1000 Mili = 1 ядро","man":"Квота ядра пода (Указывается в mili). 1000 Mili = 1 ядро","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":97,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":98,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":227,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":20,"svcOperationCfsParam":"emails","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"testuser1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Учётная запись, которой будут выданы админские права. В формате email [ну не совсем. Для доменных учетных записей - без доменного суффикса]. Обязана находиться в Keycloak. Можно передавать несколько через пробел","man":"Учётная запись, которой будут выданы админские права. В формате email [ну не совсем. Для доменных учетных записей - без доменного суффикса]. Обязана находиться в Keycloak. Можно передавать несколько через пробел","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":91} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/81/13.json b/artifacts/api-meta/prod/operations/81/13.json new file mode 100644 index 0000000..c22dd3f --- /dev/null +++ b/artifacts/api-meta/prod/operations/81/13.json @@ -0,0 +1 @@ +{"queryDurationMs":87,"svcOperation":{"svcOperationId":13,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Superset/job/delete/view/tags/job/0.0.8/buildWithParameters","descr":"DEV-Ветка удаления Superset","man":"DEV-Ветка удаления Superset","cfsParams":[]},"runDurationMs":88} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/82.list b/artifacts/api-meta/prod/operations/82.list new file mode 100644 index 0000000..e06bc95 --- /dev/null +++ b/artifacts/api-meta/prod/operations/82.list @@ -0,0 +1,2 @@ +create 14 +delete 15 diff --git a/artifacts/api-meta/prod/operations/82/14.json b/artifacts/api-meta/prod/operations/82/14.json new file mode 100644 index 0000000..e80e9b1 --- /dev/null +++ b/artifacts/api-meta/prod/operations/82/14.json @@ -0,0 +1 @@ +{"queryDurationMs":105,"svcOperation":{"svcOperationId":14,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Registry/job/create/view/tags/job/0.0.9/buildWithParameters","descr":"DEV-Ветка сборки Harbor","man":"DEV-Ветка сборки Harbor","cfsParams":[{"svcOperationCfsParamId":231,"svcOperationCfsParam":"s3Uid","label":null,"dataType":"uuid","valueList":null,"refSvcId":12,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID экземпляра услуги S3","man":"UUID экземпляра услуги S3","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":16,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":110,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":228,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"100","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро","man":"Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":229,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"200","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":230,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":17,"svcOperationCfsParam":"emails","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"testuser1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Учётная запись, которой будут выданы админские права. Обязана находиться в Keycloak. Можно передавать несколько через пробел","man":"Учётная запись, которой будут выданы админские права. Обязана находиться в Keycloak. Можно передавать несколько через пробел","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":105} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/82/15.json b/artifacts/api-meta/prod/operations/82/15.json new file mode 100644 index 0000000..bd89934 --- /dev/null +++ b/artifacts/api-meta/prod/operations/82/15.json @@ -0,0 +1 @@ +{"queryDurationMs":62,"svcOperation":{"svcOperationId":15,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Registry/job/delete/view/tags/job/0.0.9/buildWithParameters","descr":"DEV-Ветка удаления Harbor","man":"DEV-Ветка удаления Harbor","cfsParams":[]},"runDurationMs":62} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/88.list b/artifacts/api-meta/prod/operations/88.list new file mode 100644 index 0000000..5a1fbe3 --- /dev/null +++ b/artifacts/api-meta/prod/operations/88.list @@ -0,0 +1,2 @@ +create 99 +delete 105 diff --git a/artifacts/api-meta/prod/operations/88/105.json b/artifacts/api-meta/prod/operations/88/105.json new file mode 100644 index 0000000..a75f0c0 --- /dev/null +++ b/artifacts/api-meta/prod/operations/88/105.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":105,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/ZitiController/job/delete/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/88/99.json b/artifacts/api-meta/prod/operations/88/99.json new file mode 100644 index 0000000..b95e811 --- /dev/null +++ b/artifacts/api-meta/prod/operations/88/99.json @@ -0,0 +1 @@ +{"queryDurationMs":63,"svcOperation":{"svcOperationId":99,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/ZitiController/job/create/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":299,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":"provider","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":298,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":294,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"300","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (milicores)","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":295,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":296,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":297,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":64} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/89.list b/artifacts/api-meta/prod/operations/89.list new file mode 100644 index 0000000..aa8a88c --- /dev/null +++ b/artifacts/api-meta/prod/operations/89.list @@ -0,0 +1,5 @@ +delete 89 +create 88 +suspend 125 +modify 146 +resume 145 diff --git a/artifacts/api-meta/prod/operations/89/125.json b/artifacts/api-meta/prod/operations/89/125.json new file mode 100644 index 0000000..1849748 --- /dev/null +++ b/artifacts/api-meta/prod/operations/89/125.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":125,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Flask/job/suspend/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/89/145.json b/artifacts/api-meta/prod/operations/89/145.json new file mode 100644 index 0000000..0bf5b14 --- /dev/null +++ b/artifacts/api-meta/prod/operations/89/145.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":145,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Flask/job/resume/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/89/146.json b/artifacts/api-meta/prod/operations/89/146.json new file mode 100644 index 0000000..b17e2d6 --- /dev/null +++ b/artifacts/api-meta/prod/operations/89/146.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":146,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Flask/job/modify/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":451,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (milicores)","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":452,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":453,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":454,"svcOperationCfsParam":"gitPath","label":null,"dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до Git, который будет webroot для сайта","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":455,"svcOperationCfsParam":"jsonEnv","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"{ \"param\": \"value\" }","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Массив переменных, будут переданы в env приложения","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/89/88.json b/artifacts/api-meta/prod/operations/89/88.json new file mode 100644 index 0000000..4cf8c4b --- /dev/null +++ b/artifacts/api-meta/prod/operations/89/88.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":88,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Flask/job/create/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":248,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":249,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":250,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"300","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (milicores)","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":251,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"256","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":252,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":253,"svcOperationCfsParam":"gitPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"https://github.com/Foxyhhd/Baldurs-Gate-test.git","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до Git, который будет webroot для сайта","man":"Путь до Git, который будет webroot для сайта","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":254,"svcOperationCfsParam":"jsonEnv","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"{ "param": "value" }","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Массив переменных, будут переданы в env приложения","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":255,"svcOperationCfsParam":"healthPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/89/89.json b/artifacts/api-meta/prod/operations/89/89.json new file mode 100644 index 0000000..2376ccb --- /dev/null +++ b/artifacts/api-meta/prod/operations/89/89.json @@ -0,0 +1 @@ +{"queryDurationMs":63,"svcOperation":{"svcOperationId":89,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Flask/job/delete/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":63} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/90.list b/artifacts/api-meta/prod/operations/90.list new file mode 100644 index 0000000..72b40a6 --- /dev/null +++ b/artifacts/api-meta/prod/operations/90.list @@ -0,0 +1,7 @@ +recovery 47 +create 19 +resume 114 +delete 20 +modify 48 +suspend 115 +restart 54 diff --git a/artifacts/api-meta/prod/operations/90/114.json b/artifacts/api-meta/prod/operations/90/114.json new file mode 100644 index 0000000..b90aeeb --- /dev/null +++ b/artifacts/api-meta/prod/operations/90/114.json @@ -0,0 +1 @@ +{"queryDurationMs":62,"svcOperation":{"svcOperationId":114,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgsql/job/resume/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":62} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/90/115.json b/artifacts/api-meta/prod/operations/90/115.json new file mode 100644 index 0000000..e83a519 --- /dev/null +++ b/artifacts/api-meta/prod/operations/90/115.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":115,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgsql/job/suspend/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/90/19.json b/artifacts/api-meta/prod/operations/90/19.json new file mode 100644 index 0000000..9187429 --- /dev/null +++ b/artifacts/api-meta/prod/operations/90/19.json @@ -0,0 +1 @@ +{"queryDurationMs":71,"svcOperation":{"svcOperationId":19,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgsql/job/create/view/tags/job/0.0.10/buildWithParameters","descr":"описание","man":"руководство","cfsParams":[{"svcOperationCfsParamId":102,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Кластер Kubernetes, на котором будет развернут экземпляр","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":23,"svcOperationCfsParam":"s3Uid","label":"Услуга S3 для резервных копий.","dataType":"uuid","valueList":null,"refSvcId":12,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Экземпляр (учетная запись) S3 для резервного копирования. Резервное копирование обязательно","man":"Экземпляр (учетная запись) S3 для резервного копирования. Резервное копирование обязательно","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":82,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (milicores)","man":"Квота ядра пода (milicores)","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":81,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":"Квота памяти пода (MBytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":83,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":80,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":"^[1357]$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в кластере. 1,3,5,7","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":145,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделение белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний (белый) IP для доступа к master","man":"Выделяет внешний (белый) IP для доступа к master","sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":337,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации VIP master","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":146,"svcOperationCfsParam":"needExternalAddressSlave","label":"Выделение белого ip для slave ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний (белый) IP для доступа к slave. Будет работать, если slave в принципе есть","man":"Выделяет внешний (белый) IP для доступа к slave. Будет работать, если slave в принципе есть","sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":338,"svcOperationCfsParam":"ipSpaceNameSlave","label":"Имя ipSpace для публикации VIP slave","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP slave. Не может быть пустым, если включен needExternalAddressSlave","man":null,"sort":100,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":266,"svcOperationCfsParam":"ext_BACKUP_NUM_TO_RETAIN","label":"Количество резервных копий","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"7","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":99,"minvalue":1,"descr":"Не обязательный. По умолчанию: "24". Количество сохраняемых бекапов","man":"Не обязательный. По умолчанию: "24". Количество сохраняемых бекапов","sort":140,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":265,"svcOperationCfsParam":"ext_BACKUP_SCHEDULE","label":"Расписание резервного копирования","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"0 0 * * *","defaultCompute":null,"func":null,"regex":"^((((\\d+,)+\\d+|(\\d+(\\/|-|#)\\d+)|(\\d+L?)|(\\*(\\/\\d+)?)|(L(-\\d+)?)|(\\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\\d+(ns|us|µs|ms|s|m|h))+)$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Не обязательный. Время запуска бекапа","man":"Не обязательный. Время запуска бекапа","sort":150,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":310,"svcOperationCfsParam":"appVersion","label":"Версия PostgreSQL","dataType":"string","valueList":["17","16","15","14","13"],"refSvcId":null,"isRequired":true,"defaultValue":"17","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия PostgreSQL","man":null,"sort":160,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":311,"svcOperationCfsParam":"jsonParameters","label":"Параметры postgresql.conf в виде JSON","dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"{ \"log_connections\": \"off\", \"log_disconnections\": \"off\" }","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":2048,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Массив переменных, более подробнее про настройку можно посмотреть https://www.postgresql.org/docs/current/runtime-config.html","man":null,"sort":170,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":312,"svcOperationCfsParam":"enablePgPoolerMaster","label":"Включить pgPooler для Master","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает pgPooler (на запись). Будет создан новый под","man":null,"sort":180,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":313,"svcOperationCfsParam":"enablePgPoolerSlave","label":"Включить pgPooler для Slave","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает pgPooler (на чтение). Будет создан новый под","man":null,"sort":190,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":314,"svcOperationCfsParam":"allowNoSSL","label":"Выключить sslmode","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"По умолчанию подключение обязательное (sslmode=require). Выставление в true отключит этот параметр","man":null,"sort":200,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":329,"svcOperationCfsParam":"autoScale","label":"Включить autoScale","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает автоскейлинг PV. При включении параметра необходимо настроить autoScalePercentage и autoScaleTechWindow. Алерт при срабатывании вызывает modify у текущей услуги","man":null,"sort":300,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":330,"svcOperationCfsParam":"autoScalePercentage","label":"На сколько % расширяться диск (мин. 1G)","dataType":"integer > 0","valueList":["10","15","20"],"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Требует включения autoScale. Позволяет указать в процентах расширение от текущего макс объема","man":null,"sort":310,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":331,"svcOperationCfsParam":"autoScaleTechWindow","label":"Тех окно обновления дисков","dataType":"integer >= 0","valueList":["0","5","12","23"],"refSvcId":null,"isRequired":true,"defaultValue":"0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Требует включения autoScale. Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23)","man":null,"sort":320,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":339,"svcOperationCfsParam":"autoScaleQuotaGb","label":"Квота для autoScale","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Квота для autoScale","man":null,"sort":330,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":73} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/90/20.json b/artifacts/api-meta/prod/operations/90/20.json new file mode 100644 index 0000000..13816c3 --- /dev/null +++ b/artifacts/api-meta/prod/operations/90/20.json @@ -0,0 +1 @@ +{"queryDurationMs":64,"svcOperation":{"svcOperationId":20,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgsql/job/delete/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":457,"svcOperationCfsParam":"deleteS3Bucket","label":"Также удалить технический S3 Bucket с бэкапами?","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Также удалить технический S3 Bucket с бэкапами?","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":64} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/90/47.json b/artifacts/api-meta/prod/operations/90/47.json new file mode 100644 index 0000000..ff401d4 --- /dev/null +++ b/artifacts/api-meta/prod/operations/90/47.json @@ -0,0 +1 @@ +{"queryDurationMs":63,"svcOperation":{"svcOperationId":47,"operation":"recovery","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgsql/job/recovery/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":131,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":88,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili)
","man":"Квота ядра пода (Указывается в mili)
","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":87,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)
","man":"Квота памяти пода (Указывается в Megabytes)
","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":89,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":86,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети
","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":63} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/90/48.json b/artifacts/api-meta/prod/operations/90/48.json new file mode 100644 index 0000000..e9b0dc9 --- /dev/null +++ b/artifacts/api-meta/prod/operations/90/48.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":48,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgsql/job/modify/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":93,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (milicores)","man":"Квота ядра пода (milicores)","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":92,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":"Квота памяти пода (MBytes)","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":94,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":91,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":147,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделение белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP для доступа к master","man":"Выделяет внешний IP для доступа к master","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":541,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации VIP master","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":148,"svcOperationCfsParam":"needExternalAddressSlave","label":"Выделение белого ip для slave ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP для доступа к slave. Действует, если slave в принципе есть","man":"Выделяет внешний IP для доступа к slave. Действует, если slave в принципе есть","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":542,"svcOperationCfsParam":"ipSpaceNameSlave","label":"Имя ipSpace для публикации VIP slave","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP slave. Не может быть пустым, если включен needExternalAddressSlave","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":267,"svcOperationCfsParam":"ext_BACKUP_SCHEDULE","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^((((\\d+,)+\\d+|(\\d+(\\/|-|#)\\d+)|(\\d+L?)|(\\*(\\/\\d+)?)|(L(-\\d+)?)|(\\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\\d+(ns|us|µs|ms|s|m|h))+)$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Не обязательный. По умолчанию: "0 * * * *". Время запуска бекапа","man":"Не обязательный. По умолчанию: "0 * * * *". Время запуска бекапа","sort":90,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":268,"svcOperationCfsParam":"ext_BACKUP_NUM_TO_RETAIN","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":99,"minvalue":1,"descr":"Не обязательный. По умолчанию: "24". Количество сохраняемых бекапов","man":null,"sort":100,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":315,"svcOperationCfsParam":"appVersion","label":null,"dataType":"string","valueList":["17","16","15","14","13"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия PostgreSQL. Нельзя опускать вниз","man":null,"sort":110,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":316,"svcOperationCfsParam":"jsonParameters","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":2048,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Массив переменных, более подробнее про настройку можно посмотреть https://www.postgresql.org/docs/current/runtime-config.html","man":null,"sort":120,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":317,"svcOperationCfsParam":"enablePgPoolerMaster","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает pgPooler (на запись). Будет создан новый под","man":null,"sort":130,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":318,"svcOperationCfsParam":"enablePgPoolerSlave","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает pgPooler (на чтение). Будет создан новый под","man":null,"sort":140,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":319,"svcOperationCfsParam":"allowNoSSL","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"По умолчанию подключение обязательное (sslmode=require). Выставление в true отключит этот параметр","man":null,"sort":150,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/90/54.json b/artifacts/api-meta/prod/operations/90/54.json new file mode 100644 index 0000000..0f22871 --- /dev/null +++ b/artifacts/api-meta/prod/operations/90/54.json @@ -0,0 +1 @@ +{"queryDurationMs":60,"svcOperation":{"svcOperationId":54,"operation":"restart","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgsql/job/restart/view/tags/job/0.0.10/buildWithParameters","descr":"ВНИМАНИЕ - Редеплой предполагает УДАЛЕНИЕ подов.
Может быть полная поломка. Крайне осторожно запускать при работе.
Нет возможности нормально мигрировать на другую платформу средствами Redeploy, так как есть привязка к S3.
Поэтому если нужно смигрировать на другой кластер Kubernetes - использовать необходимо Restore","man":"ВНИМАНИЕ - Рестарт предполагает УДАЛЕНИЕ подов.
Может быть полная поломка. Крайне осторожно запускать при работе","cfsParams":[]},"runDurationMs":60} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/91.list b/artifacts/api-meta/prod/operations/91.list new file mode 100644 index 0000000..9ae0a99 --- /dev/null +++ b/artifacts/api-meta/prod/operations/91.list @@ -0,0 +1,2 @@ +create 21 +delete 22 diff --git a/artifacts/api-meta/prod/operations/91/21.json b/artifacts/api-meta/prod/operations/91/21.json new file mode 100644 index 0000000..2f60582 --- /dev/null +++ b/artifacts/api-meta/prod/operations/91/21.json @@ -0,0 +1 @@ +{"queryDurationMs":63,"svcOperation":{"svcOperationId":21,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Redis/job/create/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":182,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения
","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":112,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1000","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":500,"descr":"Квота ядра пода (Указывается в mili)","man":"Квота ядра пода (Указывается в mili)","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":113,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1024","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":512,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":114,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"30","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":10,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":181,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети. Если выделить больше 1 ноды, будет добавлено дополнительно 3 Sentinel ноды","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":183,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделение белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP для доступа к master","man":"Выделяет внешний IP для доступа к master","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":184,"svcOperationCfsParam":"needExternalAddressSlave","label":"Выделение белого ip для slave ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP для доступа к slave. Будет работать если slave в целом есть","man":"Выделяет внешний IP для доступа к slave. Будет работать если slave в целом есть","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":548,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации VIP master","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":549,"svcOperationCfsParam":"ipSpaceNameSlave","label":"Имя ipSpace для публикации VIP slave","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP slave. Не может быть пустым, если включен needExternalAddressSlave","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":65} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/91/22.json b/artifacts/api-meta/prod/operations/91/22.json new file mode 100644 index 0000000..4eae218 --- /dev/null +++ b/artifacts/api-meta/prod/operations/91/22.json @@ -0,0 +1 @@ +{"queryDurationMs":61,"svcOperation":{"svcOperationId":22,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Redis/job/delete/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":61} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/92.list b/artifacts/api-meta/prod/operations/92.list new file mode 100644 index 0000000..2bf3c95 --- /dev/null +++ b/artifacts/api-meta/prod/operations/92.list @@ -0,0 +1,7 @@ +suspend 194 +modify_user 200 +create_user 198 +delete_user 199 +delete 190 +resume 196 +create 37 diff --git a/artifacts/api-meta/prod/operations/92/190.json b/artifacts/api-meta/prod/operations/92/190.json new file mode 100644 index 0000000..6fcccf0 --- /dev/null +++ b/artifacts/api-meta/prod/operations/92/190.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":190,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/MongoDB/job/delete/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/92/194.json b/artifacts/api-meta/prod/operations/92/194.json new file mode 100644 index 0000000..4079b37 --- /dev/null +++ b/artifacts/api-meta/prod/operations/92/194.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svcOperation":{"svcOperationId":194,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/MongoDB/job/suspend/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":58} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/92/196.json b/artifacts/api-meta/prod/operations/92/196.json new file mode 100644 index 0000000..95b92c1 --- /dev/null +++ b/artifacts/api-meta/prod/operations/92/196.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":196,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/MongoDB/job/resume/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/92/198.json b/artifacts/api-meta/prod/operations/92/198.json new file mode 100644 index 0000000..0f8c5c8 --- /dev/null +++ b/artifacts/api-meta/prod/operations/92/198.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":198,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/MongoDB/job/create_user/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":635,"svcOperationCfsParam":"username","label":"Имя пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":636,"svcOperationCfsParam":"dbName","label":"Имя базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":643,"svcOperationCfsParam":"role","label":"Имя роли","dataType":"string","valueList":["dbOwner","read","readWrite"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/92/199.json b/artifacts/api-meta/prod/operations/92/199.json new file mode 100644 index 0000000..495a4c4 --- /dev/null +++ b/artifacts/api-meta/prod/operations/92/199.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":199,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/MongoDB/job/delete_user/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":644,"svcOperationCfsParam":"username","label":"Имя пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/92/200.json b/artifacts/api-meta/prod/operations/92/200.json new file mode 100644 index 0000000..d009014 --- /dev/null +++ b/artifacts/api-meta/prod/operations/92/200.json @@ -0,0 +1 @@ +{"queryDurationMs":66,"svcOperation":{"svcOperationId":200,"operation":"modify_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/MongoDB/job/modify_user/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":640,"svcOperationCfsParam":"username","label":"Имя пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":641,"svcOperationCfsParam":"dbName","label":"Имя базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":642,"svcOperationCfsParam":"role","label":"Имя роли","dataType":"string","valueList":["dbOwner","read","readWrite"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":66} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/92/37.json b/artifacts/api-meta/prod/operations/92/37.json new file mode 100644 index 0000000..8a5344b --- /dev/null +++ b/artifacts/api-meta/prod/operations/92/37.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svcOperation":{"svcOperationId":37,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/MongoDB/job/create/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":487,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов в сети","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `2`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":595,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать платформу из списка","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":588,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1000,"descr":"Пример: `2048`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":589,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `1000`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":590,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `20`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":645,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделяет внешний IP для доступа к master","dataType":"string","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-брокеру. Пример: `true` или `false`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":646,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/93.list b/artifacts/api-meta/prod/operations/93.list new file mode 100644 index 0000000..183a381 --- /dev/null +++ b/artifacts/api-meta/prod/operations/93.list @@ -0,0 +1,5 @@ +modify 106 +delete 39 +resume 117 +suspend 116 +create 38 diff --git a/artifacts/api-meta/prod/operations/93/106.json b/artifacts/api-meta/prod/operations/93/106.json new file mode 100644 index 0000000..a879d04 --- /dev/null +++ b/artifacts/api-meta/prod/operations/93/106.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":106,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Rabbitmq/job/modify/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":304,"svcOperationCfsParam":"resourceCPU","label":"Квота(millicore) ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":500,"descr":"Пример: `2000`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":306,"svcOperationCfsParam":"resourceDisk","label":"Квота (gigabyte) диска для контейнера","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Пример: `20`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":305,"svcOperationCfsParam":"resourceMemory","label":"Квота(megabyte) памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":512,"descr":"Пример: `2048`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":307,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `1`","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":308,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделение белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний (белый) IP для доступа к master","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":309,"svcOperationCfsParam":"needExternalAddressSlave","label":"Выделение белого ip для slave ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний (белый) IP для доступа к slave","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":545,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Если выделяеться внешний IP для master-node, то поле необходимо заполнить.","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `internet-no-antiddos-v1`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":546,"svcOperationCfsParam":"ipSpaceNameSlave","label":"Если выделяеться внешний IP для slave-node, то поле необходимо заполнить.","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `internet-no-antiddos-v1`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/93/116.json b/artifacts/api-meta/prod/operations/93/116.json new file mode 100644 index 0000000..4c60883 --- /dev/null +++ b/artifacts/api-meta/prod/operations/93/116.json @@ -0,0 +1 @@ +{"queryDurationMs":62,"svcOperation":{"svcOperationId":116,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Rabbitmq/job/suspend/view/tags/job/1.0.0/buildWithParameters","descr":"Остановка сервиса путем применения манифеста с нолевой репликой","man":"Пока не работает из за того что RabbitmqCluster нельзя занулить","cfsParams":[]},"runDurationMs":62} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/93/117.json b/artifacts/api-meta/prod/operations/93/117.json new file mode 100644 index 0000000..670f1f8 --- /dev/null +++ b/artifacts/api-meta/prod/operations/93/117.json @@ -0,0 +1 @@ +{"queryDurationMs":67,"svcOperation":{"svcOperationId":117,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Rabbitmq/job/resume/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":67} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/93/38.json b/artifacts/api-meta/prod/operations/93/38.json new file mode 100644 index 0000000..647a382 --- /dev/null +++ b/artifacts/api-meta/prod/operations/93/38.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":38,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Rabbitmq/job/create/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":119,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать платформу из списка","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":116,"svcOperationCfsParam":"resourceCPU","label":"Квота(millicore) ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1000","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":500,"descr":"Пример: `2000`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":117,"svcOperationCfsParam":"resourceMemory","label":"Квота(megabyte) памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1124","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":512,"descr":"Пример: `2048`","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":118,"svcOperationCfsParam":"resourceDisk","label":"Размер(gigabyte) диска для базы данных","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"30","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":5,"descr":"Пример: `20`","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":224,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `1`","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":225,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделение белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Флаг, определяющий, нужно ли выделять внешний IP для доступа к master. Пример: `true` или `false`","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":543,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Если выделяеться внешний IP для master-node, то поле необходимо заполнить.","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `internet-no-antiddos-v1`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/93/39.json b/artifacts/api-meta/prod/operations/93/39.json new file mode 100644 index 0000000..85a8b09 --- /dev/null +++ b/artifacts/api-meta/prod/operations/93/39.json @@ -0,0 +1 @@ +{"queryDurationMs":63,"svcOperation":{"svcOperationId":39,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Rabbitmq/job/delete/view/tags/job/1.0.0/buildWithParameters","descr":"Для удаления нужно подождать 15 мин или зайти в состояние suspend и поправить время на 15 мин назад","man":null,"cfsParams":[]},"runDurationMs":63} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/94.list b/artifacts/api-meta/prod/operations/94.list new file mode 100644 index 0000000..71ea078 --- /dev/null +++ b/artifacts/api-meta/prod/operations/94.list @@ -0,0 +1,7 @@ +modify 55 +delete 50 +suspend 96 +restart 163 +redeploy 53 +create 49 +resume 95 diff --git a/artifacts/api-meta/prod/operations/94/163.json b/artifacts/api-meta/prod/operations/94/163.json new file mode 100644 index 0000000..36c196a --- /dev/null +++ b/artifacts/api-meta/prod/operations/94/163.json @@ -0,0 +1 @@ +{"queryDurationMs":64,"svcOperation":{"svcOperationId":163,"operation":"restart","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Lucee/job/restart/view/tags/job/0.0.15/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":64} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/94/49.json b/artifacts/api-meta/prod/operations/94/49.json new file mode 100644 index 0000000..4d5222e --- /dev/null +++ b/artifacts/api-meta/prod/operations/94/49.json @@ -0,0 +1 @@ +{"queryDurationMs":62,"svcOperation":{"svcOperationId":49,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Lucee/job/create/view/tags/job/0.0.15/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":103,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":"provider","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":108,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":106,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"300","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (milicores)","man":"Квота ядра пода (milicores)","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":107,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":"Квота памяти пода (MBytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":139,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":104,"svcOperationCfsParam":"gitPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"https://github.com/xahys/testlucee","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до Git, который будет webroot для сайта","man":"Путь до Git, который будет webroot для сайта","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":105,"svcOperationCfsParam":"jsonEnv","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"{ \"param\": \"value\" }","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":2048,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Здесь вы можете задать переменные среды в формате KEY=VALUE. Они будут доступны внутри вашего приложения.","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":132,"svcOperationCfsParam":"healthPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код","man":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код","sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":263,"svcOperationCfsParam":"appVersion","label":"Версия Lucee","dataType":"string","valueList":["5.4","6.0"],"refSvcId":null,"isRequired":true,"defaultValue":"5.4","defaultCompute":null,"func":null,"regex":"^\\d+(\\.\\d+){1,2}(-[a-zA-Z0-9\\.]+)?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия Lucee","man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":63} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/94/50.json b/artifacts/api-meta/prod/operations/94/50.json new file mode 100644 index 0000000..f8990a9 --- /dev/null +++ b/artifacts/api-meta/prod/operations/94/50.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":50,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Lucee/job/delete/view/tags/job/0.0.15/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/94/53.json b/artifacts/api-meta/prod/operations/94/53.json new file mode 100644 index 0000000..1e6da2a --- /dev/null +++ b/artifacts/api-meta/prod/operations/94/53.json @@ -0,0 +1 @@ +{"queryDurationMs":61,"svcOperation":{"svcOperationId":53,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Lucee/job/redeploy/view/tags/job/0.0.15/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":257,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":61} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/94/55.json b/artifacts/api-meta/prod/operations/94/55.json new file mode 100644 index 0000000..622884d --- /dev/null +++ b/artifacts/api-meta/prod/operations/94/55.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":55,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Lucee/job/modify/view/tags/job/0.0.15/buildWithParameters","descr":"Если CFS оставить пустым, то при запуске джобы берётся параметр из instanceData","man":"Если CFS оставить пустым, то при запуске джобы берётся параметр из instanceData","cfsParams":[{"svcOperationCfsParamId":136,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili) 1000Mili = 1 ядро","man":"Квота ядра пода (Указывается в mili)","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":137,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":138,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":135,"svcOperationCfsParam":"jsonEnv","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":2048,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Массив переменных, будут переданы в env приложения","man":"Массив переменных, будут переданы в env приложения","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":133,"svcOperationCfsParam":"gitPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до Git, который будет webroot для сайта","man":"Путь до Git, который будет webroot для сайта","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":134,"svcOperationCfsParam":"healthPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код.","man":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код.","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":264,"svcOperationCfsParam":"appVersion","label":null,"dataType":"string","valueList":["5.4","6.0"],"refSvcId":null,"isRequired":true,"defaultValue":"5.4","defaultCompute":null,"func":null,"regex":"^\\d+(\\.\\d+){1,2}(-[a-zA-Z0-9\\.]+)?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/94/95.json b/artifacts/api-meta/prod/operations/94/95.json new file mode 100644 index 0000000..f5f04d8 --- /dev/null +++ b/artifacts/api-meta/prod/operations/94/95.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":95,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Lucee/job/resume/view/tags/job/0.0.15/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/94/96.json b/artifacts/api-meta/prod/operations/94/96.json new file mode 100644 index 0000000..6e33b91 --- /dev/null +++ b/artifacts/api-meta/prod/operations/94/96.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":96,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Lucee/job/suspend/view/tags/job/0.0.15/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/95.list b/artifacts/api-meta/prod/operations/95.list new file mode 100644 index 0000000..d70354f --- /dev/null +++ b/artifacts/api-meta/prod/operations/95.list @@ -0,0 +1,6 @@ +modify 59 +resume 121 +redeploy 60 +create 58 +suspend 120 +delete 61 diff --git a/artifacts/api-meta/prod/operations/95/120.json b/artifacts/api-meta/prod/operations/95/120.json new file mode 100644 index 0000000..b2d506a --- /dev/null +++ b/artifacts/api-meta/prod/operations/95/120.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":120,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Node/job/suspend/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/95/121.json b/artifacts/api-meta/prod/operations/95/121.json new file mode 100644 index 0000000..f4c08b1 --- /dev/null +++ b/artifacts/api-meta/prod/operations/95/121.json @@ -0,0 +1 @@ +{"queryDurationMs":126,"svcOperation":{"svcOperationId":121,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Node/job/resume/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":126} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/95/58.json b/artifacts/api-meta/prod/operations/95/58.json new file mode 100644 index 0000000..6452a74 --- /dev/null +++ b/artifacts/api-meta/prod/operations/95/58.json @@ -0,0 +1 @@ +{"queryDurationMs":65,"svcOperation":{"svcOperationId":58,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Node/job/create/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":149,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Наименование поддомена, будет добавлено в nodejs.dev.nubes.ru","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":156,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":153,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (milicores). 1000Mili = 1 Ядро","man":"Квота ядра пода (milicores). 1000Mili = 1 Ядро","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":154,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1024","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":"Квота памяти пода (MBytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":155,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":150,"svcOperationCfsParam":"gitPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"https://github.com/xahys/testnode.git","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до Git, который будет webroot для сайта","man":"Путь до Git, который будет webroot для сайта","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":152,"svcOperationCfsParam":"jsonEnv","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Массив переменных, будут переданы в env приложения","man":"Массив переменных, будут переданы в env приложения","sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":151,"svcOperationCfsParam":"healthPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код. Если оставить пустым, healtcheck'а не будет","man":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код. Если оставить пустым, healtcheck'а не будет","sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":270,"svcOperationCfsParam":"appVersion","label":null,"dataType":"string","valueList":["18","20","22","23"],"refSvcId":null,"isRequired":true,"defaultValue":"23","defaultCompute":null,"func":null,"regex":"^(\\d){2}$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия приложения","man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":66} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/95/59.json b/artifacts/api-meta/prod/operations/95/59.json new file mode 100644 index 0000000..771df3f --- /dev/null +++ b/artifacts/api-meta/prod/operations/95/59.json @@ -0,0 +1 @@ +{"queryDurationMs":67,"svcOperation":{"svcOperationId":59,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Node/job/modify/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":160,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili) 1000Mili = 1 ядро","man":"Квота ядра пода (Указывается в mili) 1000Mili = 1 ядро","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":161,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":162,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":159,"svcOperationCfsParam":"jsonEnv","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":2048,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Массив переменных, будут переданы в env приложения","man":"Массив переменных, будут переданы в env приложения","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":157,"svcOperationCfsParam":"gitPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до Git, который будет webroot для сайта","man":"Путь до Git, который будет webroot для сайта","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":158,"svcOperationCfsParam":"healthPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код.","man":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код.","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":271,"svcOperationCfsParam":"appVersion","label":null,"dataType":"string","valueList":["18","20","22","23"],"refSvcId":null,"isRequired":true,"defaultValue":"23","defaultCompute":null,"func":null,"regex":"^(\\d){2}$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия приложения","man":"Версия приложения","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":68} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/95/60.json b/artifacts/api-meta/prod/operations/95/60.json new file mode 100644 index 0000000..5a20f43 --- /dev/null +++ b/artifacts/api-meta/prod/operations/95/60.json @@ -0,0 +1 @@ +{"queryDurationMs":66,"svcOperation":{"svcOperationId":60,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Node/job/redeploy/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":258,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":66} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/95/61.json b/artifacts/api-meta/prod/operations/95/61.json new file mode 100644 index 0000000..71ae76d --- /dev/null +++ b/artifacts/api-meta/prod/operations/95/61.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":61,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Node/job/delete/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/96.list b/artifacts/api-meta/prod/operations/96.list new file mode 100644 index 0000000..a591cfb --- /dev/null +++ b/artifacts/api-meta/prod/operations/96.list @@ -0,0 +1,6 @@ +delete 63 +suspend 122 +redeploy 65 +create 62 +resume 123 +modify 64 diff --git a/artifacts/api-meta/prod/operations/96/122.json b/artifacts/api-meta/prod/operations/96/122.json new file mode 100644 index 0000000..1115285 --- /dev/null +++ b/artifacts/api-meta/prod/operations/96/122.json @@ -0,0 +1 @@ +{"queryDurationMs":78,"svcOperation":{"svcOperationId":122,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgadmin/job/suspend/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":78} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/96/123.json b/artifacts/api-meta/prod/operations/96/123.json new file mode 100644 index 0000000..3bc6984 --- /dev/null +++ b/artifacts/api-meta/prod/operations/96/123.json @@ -0,0 +1 @@ +{"queryDurationMs":74,"svcOperation":{"svcOperationId":123,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgadmin/job/resume/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":74} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/96/62.json b/artifacts/api-meta/prod/operations/96/62.json new file mode 100644 index 0000000..5db473c --- /dev/null +++ b/artifacts/api-meta/prod/operations/96/62.json @@ -0,0 +1 @@ +{"queryDurationMs":63,"svcOperation":{"svcOperationId":62,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgadmin/job/create/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":164,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":"provider","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":169,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":165,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"200","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (milicores). 1000Mili = 1 Ядро","man":"Квота ядра пода (milicores). 1000Mili = 1 Ядро","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":166,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"256","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":"Квота памяти пода (MBytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":167,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":170,"svcOperationCfsParam":"login","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\\.[a-zA-Z0-9_-]+)$","uniqueScope":null,"maxlength":255,"minlength":3,"maxvalue":null,"minvalue":null,"descr":"Логин для подключения к pgAdmin, в формате email (login@email.net)","man":"Логин для подключения к pgAdmin, в формате email (login@email.net)","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":171,"svcOperationCfsParam":"password","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пароль для подключения к pgAdmin","man":"Пароль для подключения к pgAdmin","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":true}]},"runDurationMs":64} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/96/63.json b/artifacts/api-meta/prod/operations/96/63.json new file mode 100644 index 0000000..4007db2 --- /dev/null +++ b/artifacts/api-meta/prod/operations/96/63.json @@ -0,0 +1 @@ +{"queryDurationMs":64,"svcOperation":{"svcOperationId":63,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgadmin/job/delete/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":65} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/96/64.json b/artifacts/api-meta/prod/operations/96/64.json new file mode 100644 index 0000000..7e34385 --- /dev/null +++ b/artifacts/api-meta/prod/operations/96/64.json @@ -0,0 +1 @@ +{"queryDurationMs":65,"svcOperation":{"svcOperationId":64,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgadmin/job/modify/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":172,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро","man":"Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":173,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":"Квота памяти пода (MBytes)","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":174,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":66} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/96/65.json b/artifacts/api-meta/prod/operations/96/65.json new file mode 100644 index 0000000..383f715 --- /dev/null +++ b/artifacts/api-meta/prod/operations/96/65.json @@ -0,0 +1 @@ +{"queryDurationMs":61,"svcOperation":{"svcOperationId":65,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgadmin/job/redeploy/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":277,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":61} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/97.list b/artifacts/api-meta/prod/operations/97.list new file mode 100644 index 0000000..152aee1 --- /dev/null +++ b/artifacts/api-meta/prod/operations/97.list @@ -0,0 +1,2 @@ +create 72 +delete 73 diff --git a/artifacts/api-meta/prod/operations/97/72.json b/artifacts/api-meta/prod/operations/97/72.json new file mode 100644 index 0000000..fcb4035 --- /dev/null +++ b/artifacts/api-meta/prod/operations/97/72.json @@ -0,0 +1 @@ +{"queryDurationMs":80,"svcOperation":{"svcOperationId":72,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/NodeRed/job/create/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":197,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":"provider","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Наименование поддомена, будет добавлено в k8stemplate.dev.nubes.ru","man":"Наименование поддомена, будет добавлено в k8stemplate.dev.nubes.ru","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":196,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":193,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":194,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":323,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":195,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":80} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/97/73.json b/artifacts/api-meta/prod/operations/97/73.json new file mode 100644 index 0000000..a324bff --- /dev/null +++ b/artifacts/api-meta/prod/operations/97/73.json @@ -0,0 +1 @@ +{"queryDurationMs":67,"svcOperation":{"svcOperationId":73,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/NodeRed/job/delete/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":67} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/98.list b/artifacts/api-meta/prod/operations/98.list new file mode 100644 index 0000000..78065cf --- /dev/null +++ b/artifacts/api-meta/prod/operations/98.list @@ -0,0 +1,6 @@ +suspend 131 +delete 78 +create 77 +modify 81 +resume 130 +redeploy 79 diff --git a/artifacts/api-meta/prod/operations/98/130.json b/artifacts/api-meta/prod/operations/98/130.json new file mode 100644 index 0000000..1b394c0 --- /dev/null +++ b/artifacts/api-meta/prod/operations/98/130.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svcOperation":{"svcOperationId":130,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SimpleHttpContainer/job/resume/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":58} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/98/131.json b/artifacts/api-meta/prod/operations/98/131.json new file mode 100644 index 0000000..1e6d4dd --- /dev/null +++ b/artifacts/api-meta/prod/operations/98/131.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":131,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SimpleHttpContainer/job/suspend/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/98/77.json b/artifacts/api-meta/prod/operations/98/77.json new file mode 100644 index 0000000..ed42b0a --- /dev/null +++ b/artifacts/api-meta/prod/operations/98/77.json @@ -0,0 +1 @@ +{"queryDurationMs":59,"svcOperation":{"svcOperationId":77,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SimpleHttpContainer/job/create/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":212,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":"provider","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":216,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":213,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"100","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili)","man":"Квота ядра пода (Указывается в mili)","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":214,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"200","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":215,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество реплик приложения. Трафик будет распределяться между подами в режиме Round-Robin","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":217,"svcOperationCfsParam":"registryPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"nexus-sa.tst.nubes.ru/docker-nubes/jolt","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до image, который будет установлен как deployment","man":"Путь до image, который будет установлен как deployment","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":241,"svcOperationCfsParam":"jsonEnv","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"{"param": "value"}","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Массив переменных, будут переданы в env приложения","man":"Массив переменных, будут переданы в env приложения","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":60} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/98/78.json b/artifacts/api-meta/prod/operations/98/78.json new file mode 100644 index 0000000..4e505ab --- /dev/null +++ b/artifacts/api-meta/prod/operations/98/78.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":78,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SimpleHttpContainer/job/delete/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/98/79.json b/artifacts/api-meta/prod/operations/98/79.json new file mode 100644 index 0000000..b03aadd --- /dev/null +++ b/artifacts/api-meta/prod/operations/98/79.json @@ -0,0 +1 @@ +{"queryDurationMs":67,"svcOperation":{"svcOperationId":79,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SimpleHttpContainer/job/redeploy/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":272,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":67} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/98/81.json b/artifacts/api-meta/prod/operations/98/81.json new file mode 100644 index 0000000..0328c9a --- /dev/null +++ b/artifacts/api-meta/prod/operations/98/81.json @@ -0,0 +1 @@ +{"queryDurationMs":74,"svcOperation":{"svcOperationId":81,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SimpleHttpContainer/job/modify/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":218,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":219,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":220,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":75} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/99.list b/artifacts/api-meta/prod/operations/99.list new file mode 100644 index 0000000..2c6f173 --- /dev/null +++ b/artifacts/api-meta/prod/operations/99.list @@ -0,0 +1,5 @@ +delete 83 +create 82 +modify 91 +suspend 126 +resume 127 diff --git a/artifacts/api-meta/prod/operations/99/126.json b/artifacts/api-meta/prod/operations/99/126.json new file mode 100644 index 0000000..74ea3f6 --- /dev/null +++ b/artifacts/api-meta/prod/operations/99/126.json @@ -0,0 +1 @@ +{"queryDurationMs":60,"svcOperation":{"svcOperationId":126,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Gitea/job/suspend/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":60} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/99/127.json b/artifacts/api-meta/prod/operations/99/127.json new file mode 100644 index 0000000..6981f47 --- /dev/null +++ b/artifacts/api-meta/prod/operations/99/127.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":127,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Gitea/job/resume/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/99/82.json b/artifacts/api-meta/prod/operations/99/82.json new file mode 100644 index 0000000..7dae955 --- /dev/null +++ b/artifacts/api-meta/prod/operations/99/82.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":82,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Gitea/job/create/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":238,"svcOperationCfsParam":"psqlUid","label":null,"dataType":"uuid","valueList":null,"refSvcId":90,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID Услуги k8sPgsql. Пользователя techGitea, базу данных gitea создаёт автоматически","man":"UUID Услуги k8sPgsql. Пользователя techGitea, базу данных gitea создаёт автоматически","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":237,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":"provider","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":232,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":300,"descr":"Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро","man":"Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":233,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":256,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":234,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":235,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/99/83.json b/artifacts/api-meta/prod/operations/99/83.json new file mode 100644 index 0000000..2b093ef --- /dev/null +++ b/artifacts/api-meta/prod/operations/99/83.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svcOperation":{"svcOperationId":83,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Gitea/job/delete/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/prod/operations/99/91.json b/artifacts/api-meta/prod/operations/99/91.json new file mode 100644 index 0000000..8257a14 --- /dev/null +++ b/artifacts/api-meta/prod/operations/99/91.json @@ -0,0 +1 @@ +{"queryDurationMs":89,"svcOperation":{"svcOperationId":91,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Gitea/job/modify/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":259,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"100","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":500,"descr":"Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":260,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"128","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":256,"descr":"Квота памяти пода (Указывается в Megabytes)","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":261,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":262,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":90} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services.json b/artifacts/api-meta/prod/services.json new file mode 100644 index 0000000..51d05d5 --- /dev/null +++ b/artifacts/api-meta/prod/services.json @@ -0,0 +1 @@ +{"queryDurationMs":63,"total":44,"resultSetSize":44,"pageSize":100,"page":1,"orderBy":"","size":44,"results":[{"svcShort":"k8sSthutrvalCluster","orchestratorName":"SthutrvalCluster","svcId":150,"svc":"Kubernetes кластер Штурвал"},{"svcShort":"valoTenant","orchestratorName":"Tenant","svcId":149,"svc":"VALO Cloud"},{"svcShort":"clickhouse","orchestratorName":"ClickHouse","svcId":120,"svc":"ClickHouse"},{"svcShort":"Akhq","orchestratorName":"Akhq","svcId":119,"svc":"Akhq"},{"svcShort":"nifi","orchestratorName":"Nifi","svcId":117,"svc":"Nifi"},{"svcShort":"kafka","orchestratorName":"Kafka","svcId":116,"svc":"ApacheKafka"},{"svcShort":"mariadb","orchestratorName":"Mariadb","svcId":115,"svc":"Mariadb"},{"svcShort":"GiteaComplex","orchestratorName":"GiteaComplex","svcId":114,"svc":"Комплексная услуга по созданию gitea"},{"svcShort":"vcComplex","orchestratorName":"Complex","svcId":113,"svc":"Быстрый старт"},{"svcShort":"tenant","orchestratorName":"Tenant","svcId":112,"svc":"Тенант в Grafana"},{"svcShort":"dnsrecord","orchestratorName":"Records","svcId":111,"svc":"DNS запись"},{"svcShort":"dnszone","orchestratorName":"Zones","svcId":110,"svc":"DNS зона"},{"svcShort":"openwhisk","orchestratorName":"OpenWhisk","svcId":100,"svc":"Serverless Openwhisk (openwhisk_tenant)"},{"svcShort":"gitea","orchestratorName":"Gitea","svcId":99,"svc":"Gitea"},{"svcShort":"http","orchestratorName":"SimpleHttpContainer","svcId":98,"svc":"Простой HTTP контейнер"},{"svcShort":"nodered","orchestratorName":"NodeRed","svcId":97,"svc":"NodeRed"},{"svcShort":"pgadmin","orchestratorName":"Pgadmin","svcId":96,"svc":"pgAdmin"},{"svcShort":"nodejs","orchestratorName":"Node","svcId":95,"svc":"NodeJS"},{"svcShort":"lucee","orchestratorName":"Lucee","svcId":94,"svc":"Lucee"},{"svcShort":"rabbitmq","orchestratorName":"Rabbitmq","svcId":93,"svc":"RabbitMQ"},{"svcShort":"mongodb","orchestratorName":"MongoDB","svcId":92,"svc":"MongoDB"},{"svcShort":"redis","orchestratorName":"Redis","svcId":91,"svc":"Redis"},{"svcShort":"postgres","orchestratorName":"Pgsql","svcId":90,"svc":"PostgreSQL"},{"svcShort":"flask","orchestratorName":"Flask","svcId":89,"svc":"Flask"},{"svcShort":"k8sZitiController","orchestratorName":"ZitiController","svcId":88,"svc":"k8sZitiController"},{"svcShort":"harbor","orchestratorName":"Registry","svcId":82,"svc":"Container Registry"},{"svcShort":"superset","orchestratorName":"Superset","svcId":81,"svc":"Apache Superset"},{"svcShort":"nextcloud","orchestratorName":"Nextcloud","svcId":50,"svc":"Nextcloud"},{"svcShort":"vmpostgre","orchestratorName":"VmPostgre","svcId":32,"svc":"vc_vm_postgresql_std"},{"svcShort":"vcVdcGroup","orchestratorName":"VdcGroup","svcId":29,"svc":"Группа датацентров"},{"svcShort":"vc_vm_v3","orchestratorName":"VmV3","svcId":28,"svc":"Виртуальная машина"},{"svcShort":"vc_vm_v2","orchestratorName":"VmV2","svcId":27,"svc":"VM в Cloud Director (vc_vmV2)"},{"svcShort":"vapp","orchestratorName":"Vapp","svcId":26,"svc":"Виртуальный каталог ВМ (vApp)"},{"svcShort":"vcexternalip","orchestratorName":"Ip","svcId":25,"svc":"Публичные IP адреса"},{"svcShort":null,"orchestratorName":null,"svcId":24,"svc":"DEPRECATED Правила маршрутизации для VM (vc_nat)"},{"svcShort":"vc_vm","orchestratorName":"Vm","svcId":23,"svc":"VM в Cloud Director (старый формат) (vc_vm)"},{"svcShort":"vc_nsxt","orchestratorName":"Nsxt","svcId":22,"svc":"Сетевой шлюз периметра (Edge)"},{"svcShort":"vc_vdc","orchestratorName":"Vdc","svcId":21,"svc":"Виртуальный датацентр (vDC)"},{"svcShort":"vcOrgSaas","orchestratorName":"OrgSaas","svcId":20,"svc":"Организация [DEPRECATED]"},{"svcShort":"vcOrg","orchestratorName":"Org","svcId":19,"svc":"Организация в Cloud Director"},{"svcShort":"s3bucket","orchestratorName":"Bucket","svcId":13,"svc":"S3 бакет"},{"svcShort":"s3","orchestratorName":"Ceph","svcId":12,"svc":"S3 Object Storage"},{"svcShort":"template","orchestratorName":"Template","svcId":2,"svc":"Темплейт k8s"},{"svcShort":"dummy","orchestratorName":"Service","svcId":1,"svc":"Болванка"}],"runDurationMs":65} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/1.json b/artifacts/api-meta/prod/services/1.json new file mode 100644 index 0000000..4ca282b --- /dev/null +++ b/artifacts/api-meta/prod/services/1.json @@ -0,0 +1 @@ +{"queryDurationMs":104,"svc":{"svcId":1,"svc":"Болванка","svcShort":"dummy","code":null,"version":"1.0.2","orchestratorName":"Service","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/dummy/job/Service/job/create/view/tags/job/1.0.2/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":7,"iconSrc":null,"descr":"Болванка для тестов","man":"## Болванка для тестов.

А это просто много букв, чтобы посмотреть, как ведет себя текст при переполнении контейнера.


``` json
{
"iamServiceUrl": "https://auth-api-test.ngcloud.ru/api/v1/user",
"idpResponse": {
"prefix": {
"charset": "",
"status_text": "Request Time-out",
"text": true,
"errordetail": "",
"filecontent": "Connection Timeout",
"responseheader": {},
"header": "",
"statuscode": "408 Request Time-out",
"status_code": 408,
"mimetype": "Unable to determine MIME type of file."
}
}
}
```","operations":[{"svcOperationId":240,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/dummy/job/Service/job/redeploy/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":71,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/dummy/job/Service/job/delete/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":93,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/dummy/job/Service/job/suspend/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":18,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/dummy/job/Service/job/create/view/tags/job/1.0.2/buildWithParameters","descr":"Это описание операции CREATE сервиса Болванка","man":"Это мануал к операции CREATE сервиса Болванка"},{"svcOperationId":92,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/dummy/job/Service/job/modify/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":94,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/dummy/job/Service/job/resume/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null}]},"runDurationMs":105} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/100.json b/artifacts/api-meta/prod/services/100.json new file mode 100644 index 0000000..802f8a6 --- /dev/null +++ b/artifacts/api-meta/prod/services/100.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svc":{"svcId":100,"svc":"Serverless Openwhisk (openwhisk_tenant)","svcShort":"openwhisk","code":null,"version":null,"orchestratorName":"OpenWhisk","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesProd/job/k8s/job/tenantOpenwhisk/job/serviceCreate/job/master/buildWithParameters","isProductionReady":false,"resourceRealmTypeId":5,"iconSrc":null,"descr":"Добавление и удаления пользователя (учетной записи, тенанта) для работы с Openwhisk","man":"Добавление и удаления пользователя для работы с Openwhisk","operations":[{"svcOperationId":42,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesProd/job/k8s/job/tenantOpenwhisk/job/serviceDelete/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":41,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesProd/job/k8s/job/tenantOpenwhisk/job/serviceCreate/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/110.json b/artifacts/api-meta/prod/services/110.json new file mode 100644 index 0000000..0a05cec --- /dev/null +++ b/artifacts/api-meta/prod/services/110.json @@ -0,0 +1 @@ +{"queryDurationMs":64,"svc":{"svcId":110,"svc":"DNS зона","svcShort":"dnszone","code":null,"version":"1.0.3","orchestratorName":"Zones","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/powerdns/job/Zones/job/create/view/tags/job/1.0.3/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":4,"iconSrc":"https://www.svgrepo.com/download/530451/dns.svg","descr":"Хостинг DNS зоны","man":"## ![image](https://img.icons8.com/?size=50&id=41400&format=png) Необходимо делегировать зону у регистратора на Авторитетные DNS (Сервера зон)

ns3.ngcloud.ru
``` bash
185.247.187.83
2a10:aa80:0:5::3
```

ns4.ngcloud.ru
``` bash
81.22.46.43
2a10:aa80:0:6::3
```","operations":[{"svcOperationId":43,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/powerdns/job/Zones/job/create/view/tags/job/1.0.3/buildWithParameters","descr":null,"man":null},{"svcOperationId":44,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/powerdns/job/Zones/job/delete/view/tags/job/1.0.3/buildWithParameters","descr":null,"man":null}]},"runDurationMs":64} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/111.json b/artifacts/api-meta/prod/services/111.json new file mode 100644 index 0000000..6fc9618 --- /dev/null +++ b/artifacts/api-meta/prod/services/111.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svc":{"svcId":111,"svc":"DNS запись","svcShort":"dnsrecord","code":null,"version":"1.0.4","orchestratorName":"Records","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/powerdns/job/Records/job/create/view/tags/job/1.0.4/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":4,"iconSrc":"https://www.svgrepo.com/download/530451/dns.svg","descr":"DNS запись в созданной зоне","man":"Необходима DNS зона, в которой будет создана DNS запись.
Выберите
* Зону в которой будет создана запись
* Тип записи
* Имя записи
* Значение записи","operations":[{"svcOperationId":46,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/powerdns/job/Records/job/delete/view/tags/job/1.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":45,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/powerdns/job/Records/job/create/view/tags/job/1.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":90,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/powerdns/job/Records/job/modify/view/tags/job/1.0.4/buildWithParameters","descr":null,"man":null}]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/112.json b/artifacts/api-meta/prod/services/112.json new file mode 100644 index 0000000..14c2c37 --- /dev/null +++ b/artifacts/api-meta/prod/services/112.json @@ -0,0 +1 @@ +{"queryDurationMs":76,"svc":{"svcId":112,"svc":"Тенант в Grafana","svcShort":"tenant","code":null,"version":"0.0.7","orchestratorName":"Tenant","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/grafana/job/Tenant/job/create/view/tags/job/0.0.7/buildWithParameters","isProductionReady":false,"resourceRealmTypeId":6,"iconSrc":null,"descr":"Организация доступов к мониторингу","man":null,"operations":[{"svcOperationId":87,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/grafana/job/Tenant/job/modify/view/tags/job/0.0.7/buildWithParameters","descr":"Просто удаляет все текущие датасоурсы и ставит их заново
Полезно, когда нужно "ресетнуть" / "добавить"","man":"Просто удаляет все текущие датасоурсы и ставит их заново
Полезно, когда нужно "ресетнуть" / "добавить""},{"svcOperationId":84,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/grafana/job/Tenant/job/create/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":86,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/grafana/job/Tenant/job/delete/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null}]},"runDurationMs":77} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/113.json b/artifacts/api-meta/prod/services/113.json new file mode 100644 index 0000000..35ac716 --- /dev/null +++ b/artifacts/api-meta/prod/services/113.json @@ -0,0 +1 @@ +{"queryDurationMs":73,"svc":{"svcId":113,"svc":"Быстрый старт","svcShort":"vcComplex","code":null,"version":"0.0.5","orchestratorName":"Complex","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Complex/job/create/view/tags/job/0.0.5/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Создание готовой иерархии ресурсов","man":"# Создает окружение для ВМ.

## Создает сервисы:
**Организация**
**Виртуальный датацентр**
**Каталог**
**Сетевой шлюз периметра**

","operations":[{"svcOperationId":107,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Complex/job/create/view/tags/job/0.0.5/buildWithParameters","descr":null,"man":null}]},"runDurationMs":73} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/114.json b/artifacts/api-meta/prod/services/114.json new file mode 100644 index 0000000..a8bbf42 --- /dev/null +++ b/artifacts/api-meta/prod/services/114.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svc":{"svcId":114,"svc":"Комплексная услуга по созданию gitea","svcShort":"GiteaComplex","code":null,"version":"master","orchestratorName":"GiteaComplex","createUrl":null,"isProductionReady":false,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Комплексная услуга из ["gittea", "postgres"]","man":"Комплексная услуга из ["gittea", "postgres"]","operations":[]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/115.json b/artifacts/api-meta/prod/services/115.json new file mode 100644 index 0000000..28a9722 --- /dev/null +++ b/artifacts/api-meta/prod/services/115.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svc":{"svcId":115,"svc":"Mariadb","svcShort":"mariadb","code":"paas.mysql.0","version":"0.0.4","orchestratorName":"Mariadb","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Mariadb/job/create/view/tags/job/0.0.4/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Управляемая база данных MySQL","man":"Mariadb кластер. Ресурсная платформа: k8s. Автоматизация: k8s operator.
Автоматическое резервное копирование, ручное восстановление.","operations":[{"svcOperationId":142,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Mariadb/job/modify/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":141,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Mariadb/job/resume/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":138,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Mariadb/job/create/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":140,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Mariadb/job/suspend/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":139,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Mariadb/job/delete/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/116.json b/artifacts/api-meta/prod/services/116.json new file mode 100644 index 0000000..6634a89 --- /dev/null +++ b/artifacts/api-meta/prod/services/116.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svc":{"svcId":116,"svc":"ApacheKafka","svcShort":"kafka","code":null,"version":"0.0.2","orchestratorName":"Kafka","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Kafka/job/create/view/tags/job/0.0.2/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Сервис создания кластера Apache Kafka","man":"# Инструкция по развертыванию Организация в Cloud Director через платформу

## 1. Общая информация

Сервис **Организация в Cloud Director** предназначен для управления изолированными организационными единицами (тенантами) внутри инфраструктуры Cloud Director. Он обеспечивает создание, модификацию и администрирование организаций, предоставление им облачных ресурсов, а также контроль уровня доступа. Сервис используется для организации рабочих окружений потребителей, управления жизненным циклом организаций и их сетевой инфраструктурой.

### Доступные операции

**create** — Создание новой организации с заданными характеристиками и типом доступа.
**delete** — Удаление организации после перехода в состояние suspend; приводит к удалению всех связанных сущностей.
**modify** — Изменение параметров внутри организации (на текущий момент поддерживается изменение ipSpaces).
**suspend** — Заморозка организации, ограничение возможности изменения и добавления сущностей.
**resume** — Разморозка организации, восстановление функций управления.

---

## 2. Параметры развертывания

Параметры входных данных операции **create**:

### Платформа для развертывания
Описание: платформа, на которой будет создана организация.
Пример значения: `ngcloud.ru`.

### Тип организации
Описание: тип создаваемой организации.
Варианты:
- `iaas` — организация с прямым доступом к облаку и авторизацией через Keycloak.
- `saas` — организация под управлением Nubes, без прямого доступа к облаку.

---

## 3. Рекомендованные характеристики

### Тестовое окружение
- Тип организации: `iaas` для обеспечения полного доступа к облачным ресурсам и самостоятельного управления.

### Промышленное окружение
- Тип организации: `saas` (упрощённая модель использования).

---

## 4. Выходные параметры

Услуга предоставляет следующие выходные параметры (формируются в процессе операций):

### Идентификатор организации
Уникальный идентификатор созданной организации. Используется для всех дальнейших API-операций.

### Статус организации
Отражает текущее состояние: active, suspended, modifying, deleting.

### Параметры сети
Выходные данные при наличии ipSpaces: список выделенных внешних IP, имя ip_space, количество IP.

---

## 5. Дополнительная информация

- Для конфигурации внешних IP внутри организации необходимо предварительно создать:
-- хотя бы один **Виртуальный датацентр (VDC)**;
-- хотя бы один **Сетевой шлюз периметра (Edge Gateway)**, привязанный к этой организации.
- Удаление организации возможно только через 14 дней после перевода в состояние suspend.
- Удаление организации приводит к удалению всех связанных сущностей: VDC, Edge Gateway, пулов IP, сетей, ВМок и иных объектов.
- Операция suspend не останавливает виртуальные машины, но блокирует любые изменения инфраструктуры внутри организации.
- Для iaas-организаций доступ осуществляется через Keycloak.

","operations":[{"svcOperationId":148,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Kafka/job/create/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":149,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Kafka/job/delete/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":160,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Kafka/job/suspend/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":162,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Kafka/job/modify/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":169,"operation":"modify_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Kafka/job/modify_user/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.

---

## 1. Общая информация

Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.
Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.
Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.

---

## Доступные операции

- **create_user** — Создание пользователя
- **modify_user** — Модификация пользователя
- **delete_user** — Удаление пользователя

---

## 2. Параметры создания пользователя

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

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 3. Параметры модификации пользователя

Ниже перечислены параметры, которые необходимо указать при модификации пользователя:

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 4. Параметры удалении пользователя

Ниже перечислены параметры, которые необходимо указать при удалении пользователя:

* **Имя пользователя**
Имя удаляемого пользователя.
Пример: `username-admin`

## 5. Выходные параметры

После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:

* **ca.crt**
Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.
Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **ca.p12**
PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.p12
```

* **ca.password**
Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

* **user.crt**
Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.
Используется совместно с приватным ключом `user.key` для аутентификации.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **user.key**
Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.key
```

* **user.p12**
PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo "<содержание поля>" | base64 -d > <название>.p12
```

* **user.password**
Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

Эти параметры используются для настройки TLS-подключения.

---

## 6. Пример конфигурации клиента внутри кластера

Пример пода:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: kafka-4
spec:
volumes:
- name: work
emptyDir: {}
containers:
- name: kcat
image: quay.io/strimzi/kafka:latest-kafka-4.0.0
command: ["sleep", "5600"]
volumeMounts:
- name: work
mountPath: /work
restartPolicy: Never
```

Создаём под и сохраняем сертификаты:

```bash
kubectl cp user.p12 kafka-4:/work/
kubectl cp ca.p12 kafka-4:/work/
```

Создаём файлы конфигурации:

```bash
cat > /work/user-read.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

```bash
cat > /work/user-write.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user-write.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

Листинг доступных топиков:

```bash
/opt/kafka/bin/kafka-topics.sh \\
--bootstrap-server kafkak8s-bootstrap-external:9093 \\
--command-config /work/user-read.properties \\
--list
```

Запись сообщений:

```bash
/opt/kafka/bin/kafka-console-producer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--producer.config /work/user-write.properties
```

Чтение сообщений:

```bash
/opt/kafka/bin/kafka-console-consumer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--from-beginning \\
--group <group> \\
--consumer.config /work/user-read.properties \\
--max-messages 50
```

---

## 7. Пример внешнего подключения с использованием **kcat**

**Листинг топиков**

```bash
kcat -b <externalConnect.bootstrap.fqdn>:9093 \\
-L \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Запись сообщения**

```bash
echo "hello from kcat" | kcat -P \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-write.crt \\
-X ssl.key.location=./user-write.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Чтение сообщений**

```bash
kcat -C \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-o beginning \\
-q \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

---


## 9. Рекомендации

* Минимизируйте набор разрешённых операций для повышения безопасности.
* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.
* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.
* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.

---"},{"svcOperationId":167,"operation":"delete_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Kafka/job/delete_topic/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":161,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Kafka/job/resume/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":168,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Kafka/job/create_user/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.

---

## 1. Общая информация

Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.
Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.
Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.

---

## Доступные операции

- **create_user** — Создание пользователя
- **modify_user** — Модификация пользователя
- **delete_user** — Удаление пользователя

---

## 2. Параметры создания пользователя

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

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 3. Параметры модификации пользователя

Ниже перечислены параметры, которые необходимо указать при модификации пользователя:

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 4. Параметры удалении пользователя

Ниже перечислены параметры, которые необходимо указать при удалении пользователя:

* **Имя пользователя**
Имя удаляемого пользователя.
Пример: `username-admin`

## 5. Выходные параметры

После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:

* **ca.crt**
Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.
Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **ca.p12**
PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.p12
```

* **ca.password**
Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

* **user.crt**
Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.
Используется совместно с приватным ключом `user.key` для аутентификации.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **user.key**
Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.key
```

* **user.p12**
PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo "<содержание поля>" | base64 -d > <название>.p12
```

* **user.password**
Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

Эти параметры используются для настройки TLS-подключения.

---

## 6. Пример конфигурации клиента внутри кластера

Пример пода:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: kafka-4
spec:
volumes:
- name: work
emptyDir: {}
containers:
- name: kcat
image: quay.io/strimzi/kafka:latest-kafka-4.0.0
command: ["sleep", "5600"]
volumeMounts:
- name: work
mountPath: /work
restartPolicy: Never
```

Создаём под и сохраняем сертификаты:

```bash
kubectl cp user.p12 kafka-4:/work/
kubectl cp ca.p12 kafka-4:/work/
```

Создаём файлы конфигурации:

```bash
cat > /work/user-read.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

```bash
cat > /work/user-write.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user-write.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

Листинг доступных топиков:

```bash
/opt/kafka/bin/kafka-topics.sh \\
--bootstrap-server kafkak8s-bootstrap-external:9093 \\
--command-config /work/user-read.properties \\
--list
```

Запись сообщений:

```bash
/opt/kafka/bin/kafka-console-producer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--producer.config /work/user-write.properties
```

Чтение сообщений:

```bash
/opt/kafka/bin/kafka-console-consumer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--from-beginning \\
--group <group> \\
--consumer.config /work/user-read.properties \\
--max-messages 50
```

---

## 7. Пример внешнего подключения с использованием **kcat**

**Листинг топиков**

```bash
kcat -b <externalConnect.bootstrap.fqdn>:9093 \\
-L \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Запись сообщения**

```bash
echo "hello from kcat" | kcat -P \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-write.crt \\
-X ssl.key.location=./user-write.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Чтение сообщений**

```bash
kcat -C \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-o beginning \\
-q \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

---


## 9. Рекомендации

* Минимизируйте набор разрешённых операций для повышения безопасности.
* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.
* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.
* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.

---"},{"svcOperationId":170,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Kafka/job/delete_user/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.

---

## 1. Общая информация

Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.
Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.
Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.

---

## Доступные операции

- **create_user** — Создание пользователя
- **modify_user** — Модификация пользователя
- **delete_user** — Удаление пользователя

---

## 2. Параметры создания пользователя

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

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 3. Параметры модификации пользователя

Ниже перечислены параметры, которые необходимо указать при модификации пользователя:

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 4. Параметры удалении пользователя

Ниже перечислены параметры, которые необходимо указать при удалении пользователя:

* **Имя пользователя**
Имя удаляемого пользователя.
Пример: `username-admin`

## 5. Выходные параметры

После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:

* **ca.crt**
Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.
Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **ca.p12**
PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.p12
```

* **ca.password**
Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

* **user.crt**
Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.
Используется совместно с приватным ключом `user.key` для аутентификации.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **user.key**
Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.key
```

* **user.p12**
PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo "<содержание поля>" | base64 -d > <название>.p12
```

* **user.password**
Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

Эти параметры используются для настройки TLS-подключения.

---

## 6. Пример конфигурации клиента внутри кластера

Пример пода:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: kafka-4
spec:
volumes:
- name: work
emptyDir: {}
containers:
- name: kcat
image: quay.io/strimzi/kafka:latest-kafka-4.0.0
command: ["sleep", "5600"]
volumeMounts:
- name: work
mountPath: /work
restartPolicy: Never
```

Создаём под и сохраняем сертификаты:

```bash
kubectl cp user.p12 kafka-4:/work/
kubectl cp ca.p12 kafka-4:/work/
```

Создаём файлы конфигурации:

```bash
cat > /work/user-read.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

```bash
cat > /work/user-write.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user-write.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

Листинг доступных топиков:

```bash
/opt/kafka/bin/kafka-topics.sh \\
--bootstrap-server kafkak8s-bootstrap-external:9093 \\
--command-config /work/user-read.properties \\
--list
```

Запись сообщений:

```bash
/opt/kafka/bin/kafka-console-producer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--producer.config /work/user-write.properties
```

Чтение сообщений:

```bash
/opt/kafka/bin/kafka-console-consumer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--from-beginning \\
--group <group> \\
--consumer.config /work/user-read.properties \\
--max-messages 50
```

---

## 7. Пример внешнего подключения с использованием **kcat**

**Листинг топиков**

```bash
kcat -b <externalConnect.bootstrap.fqdn>:9093 \\
-L \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Запись сообщения**

```bash
echo "hello from kcat" | kcat -P \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-write.crt \\
-X ssl.key.location=./user-write.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Чтение сообщений**

```bash
kcat -C \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-o beginning \\
-q \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

---


## 9. Рекомендации

* Минимизируйте набор разрешённых операций для повышения безопасности.
* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.
* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.
* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.

---"},{"svcOperationId":166,"operation":"modify_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Kafka/job/modify_topic/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"# Инструкция по управлению топиками Apache Kafka через платформу

## 1. Общая информация

---

Топик — это основная сущность в Apache Kafka, предназначенная для приёма сообщений от продюсеров и передачи их консюмерам.
Платформа позволяет создавать, удалять и изменять параметры топиков без прямого доступа к брокерам, обеспечивая удобное управление через интерфейс или API.

---

## Доступные операции

- **create_topic** — Создание топика
- **modify_topic** — Модификация топика
- **delete_topic** — Удаление топика

---

## 2. Параметры создания топика

Ниже перечислены параметры, которые необходимо указать при создании нового топика:

* **Имя топика**
Название топика.
Должно быть уникальным в пределах кластера.
Пример: `orders-events`.

* **Партиции**
Количество партиций топика.
Рекомендуется выбирать с учётом уровня параллелизма потребителей и предполагаемой нагрузки.
Пример: `6`. Здесь важно рассказать о том как происходит расчет оптимального количества
Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.

* **Реплики**
Количество реплик для каждой партиции.
Обычно равно количеству доступных брокеров или меньше.
Пример: `3`.


---

## 4. Параметры модификации топика

Для уже существующих топиков можно изменять параметры. Все параметры являются опциональными:

* **Имя топика**
Название топика.
Пример: `orders-events`.

* **Партиции**
Новое количество партиций.
Пример: `12`.

* **Реплики**
Новое количество реплик.
Пример: `2`.

---

## 5. Рекомендации

* Планируйте количество партиций с запасом — уменьшение их числа невозможно.
* Количество реплик должно соответствовать требуемому уровню отказоустойчивости, но не превышать количество брокеров.
* Изменение параметров топика в рабочем окружении может временно влиять на производительность. Рекомендуется проводить крупные изменения в периоды минимальной нагрузки.

---"},{"svcOperationId":165,"operation":"create_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Kafka/job/create_topic/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"# Инструкция по управлению топиками Apache Kafka через платформу

## 1. Общая информация

---

Топик — это основная сущность в Apache Kafka, предназначенная для приёма сообщений от продюсеров и передачи их консюмерам.
Платформа позволяет создавать, удалять и изменять параметры топиков без прямого доступа к брокерам, обеспечивая удобное управление через интерфейс или API.

---

## Доступные операции

- **create_topic** — Создание топика
- **modify_topic** — Модификация топика
- **delete_topic** — Удаление топика

---

## 2. Параметры создания топика

Ниже перечислены параметры, которые необходимо указать при создании нового топика:

* **Имя топика**
Название топика.
Должно быть уникальным в пределах кластера.
Пример: `orders-events`.

* **Партиции**
Количество партиций топика.
Рекомендуется выбирать с учётом уровня параллелизма потребителей и предполагаемой нагрузки.
Пример: `6`. Здесь важно рассказать о том как происходит расчет оптимального количества
Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.

* **Реплики**
Количество реплик для каждой партиции.
Обычно равно количеству доступных брокеров или меньше.
Пример: `3`.


---

## 4. Параметры модификации топика

Для уже существующих топиков можно изменять параметры. Все параметры являются опциональными:

* **Имя топика**
Название топика.
Пример: `orders-events`.

* **Партиции**
Новое количество партиций.
Пример: `12`.

* **Реплики**
Новое количество реплик.
Пример: `2`.

---

## 5. Рекомендации

* Планируйте количество партиций с запасом — уменьшение их числа невозможно.
* Количество реплик должно соответствовать требуемому уровню отказоустойчивости, но не превышать количество брокеров.
* Изменение параметров топика в рабочем окружении может временно влиять на производительность. Рекомендуется проводить крупные изменения в периоды минимальной нагрузки.

---"}]},"runDurationMs":58} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/117.json b/artifacts/api-meta/prod/services/117.json new file mode 100644 index 0000000..da52ab7 --- /dev/null +++ b/artifacts/api-meta/prod/services/117.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svc":{"svcId":117,"svc":"Nifi","svcShort":"nifi","code":null,"version":"null","orchestratorName":"Nifi","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Nifi/job/create/view/tags/job/null/buildWithParameters","isProductionReady":false,"resourceRealmTypeId":3,"iconSrc":null,"descr":"ETL-система","man":null,"operations":[{"svcOperationId":154,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Nifi/job/modify/view/tags/job/null/buildWithParameters","descr":null,"man":null},{"svcOperationId":150,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Nifi/job/create/view/tags/job/null/buildWithParameters","descr":"Топик — это основная сущность в Apache Kafka, в которую продюсеры публикуют сообщения и из которой консюмеры их читают.
Платформа предоставляет удобный способ создавать и изменять параметры топиков без прямого обращения к брокерам Kafka.","man":null},{"svcOperationId":151,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Nifi/job/delete/view/tags/job/null/buildWithParameters","descr":null,"man":null}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/119.json b/artifacts/api-meta/prod/services/119.json new file mode 100644 index 0000000..ac59429 --- /dev/null +++ b/artifacts/api-meta/prod/services/119.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svc":{"svcId":119,"svc":"Akhq","svcShort":"Akhq","code":null,"version":"0.0.1","orchestratorName":"Akhq","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Akhq/job/create/view/tags/job/0.0.1/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Web интерфейс Akhq для работы с Apache Kafka","man":"# Инструкция по развертыванию Apache Kafka через платформу

---
## 1. Общая информация
AKHQ — это веб-интерфейс для работы с кластерами Apache Kafka.
Позволяет просматривать топики, consumer group'ы, сообщения, ACL, схему безопасности, состояние брокеров и метаданные.
Поддерживает работу с несколькими кластерами Kafka одновременно, включая внутренние и внешние (TLS) подключения.

## Доступные операции
- **create** — Создание ресурса AKHQ
- **suspend** — Остановка ресурса
- **resume** — Возобновление работы ресурса
- **modify** — Модификация настроек
- **delete** — Удаление ресурса

---
## 2. Параметры развертывания кластера
Ниже перечислены параметры, которые необходимо указать при создании ресурса Kafka:

* **Кластер Kafka к которому нужно настроить подключение**
Для использования AKHQ необходимо предварительно развернуть сервис Kafka. Пример: `kafka-external`.

* **Платформа для развертывания:**
Платформа для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.

* **Количество узлов в сети:**
Количество узлов для работы Akhq. Пример `2`

* **Квота (megabyte) памяти пода:**
Квота памяти пода в мегабайтах. Пример: `512`

* **Квота (millicore ) ядра пода:**
Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `500`

* **Имя домена:**
Dns Имя по которому будет происходить обращение к сервису. Указать необходимо уникальное имя до . ( то есть если необходимо получить dns ui) Пример: `kafka-external`

---
## 4. Выходные параметры
После успешного развертывания ресурса Kafka платформа возвращает ряд параметров.
Ключевым из них является:

**connectionUrl**
Это полное доменное имя (FQDN), по которому будет доступен интерфейс AKHQ. После развёртывания подождите несколько минут — UI станет доступен по HTTPS, как только все сервисы полностью запустятся.

**Учетные данные**
Здесь представлены поля для ввода логина и пароля, с помощью которых вы сможете авторизоваться в сервисе.

---
## 5. Дополнительная информация
Учётные записи, созданные для работы с AKHQ, предоставляют доступ только для просмотра данных. Для управления Kafka, пожалуйста, используйте возможности личного кабинета.
---","operations":[{"svcOperationId":180,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Akhq/job/modify/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":176,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Akhq/job/delete/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":178,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Akhq/job/resume/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":177,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Akhq/job/suspend/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":175,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Akhq/job/create/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null}]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/12.json b/artifacts/api-meta/prod/services/12.json new file mode 100644 index 0000000..d9313d9 --- /dev/null +++ b/artifacts/api-meta/prod/services/12.json @@ -0,0 +1 @@ +{"queryDurationMs":59,"svc":{"svcId":12,"svc":"S3 Object Storage","svcShort":"s3","code":"paas.s3.ceph","version":"1.0.5","orchestratorName":"Ceph","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/s3/job/Ceph/job/create/view/tags/job/1.0.5/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":1,"iconSrc":"https://upload.wikimedia.org/wikipedia/commons/3/32/AWS_Simple_Icons_Storage_Amazon_S3.svg","descr":"Масштабируемое хранилище данных","man":"Руководство доступно по ссылке:
https://docs.s3.msk-1.ngcloud.ru/s3/s3.description.html","operations":[{"svcOperationId":7,"operation":"delete_sub_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/s3/job/Ceph/job/delete_sub_user/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null},{"svcOperationId":5,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/s3/job/Ceph/job/delete/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null},{"svcOperationId":3,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/s3/job/Ceph/job/resume/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null},{"svcOperationId":1,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/s3/job/Ceph/job/create/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null},{"svcOperationId":6,"operation":"create_sub_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/s3/job/Ceph/job/create_sub_user/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null},{"svcOperationId":4,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/s3/job/Ceph/job/modify/view/tags/job/1.0.5/buildWithParameters","descr":"При первичном вызове операции услуга Trial прекращает действие","man":"При первичном вызове операции услуга Trial прекращает действие"},{"svcOperationId":2,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/s3/job/Ceph/job/suspend/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null}]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/120.json b/artifacts/api-meta/prod/services/120.json new file mode 100644 index 0000000..5d8550d --- /dev/null +++ b/artifacts/api-meta/prod/services/120.json @@ -0,0 +1 @@ +{"queryDurationMs":59,"svc":{"svcId":120,"svc":"ClickHouse","svcShort":"clickhouse","code":null,"version":"0.0.4","orchestratorName":"ClickHouse","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/ClickHouse/job/create/view/tags/job/0.0.4/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Управляемая база данных ClickHouse","man":"# Инструкция по управлению кластерами и пользователями ClickHouse

---

## Общая информация

ClickHouse — это колоночная система управления базами данных, предназначенная для обработки аналитических запросов в реальном времени. Платформа позволяет создавать, удалять, приостанавливать и возобновлять кластеры ClickHouse, а также управлять базами данных и пользователями.

Кластер создаётся через оператор Altinity (`https://github.com/Altinity/clickhouse-operator`) в ресурсной платформе типа `k8s`

Кластеры могут создаваться шардированными с произвольным количеством реплик. Для обеспечения отказоустойчивости и координации обязательно включение параметра `Создать ClickHouse-Keeper`.

Кластера создаются с обязательным бекапом. Для этого необходимо предварительно создать услугу `S3 Object Storage`.
---

## Доступные операции

* **create** — Создание кластера
* **delete** — Удаление кластера
* **suspend** — Приостановка работы кластера
* **resume** — Возобновление работы кластера
* **create_database** — Создание базы данных
* **delete_database** — Удаление базы данных
* **create_user** — Создание пользователя и настройка прав доступа к базе данных
* **delete_user** — Удаление пользователя

## Процесс создания и первого подключения

1. Выполнить операцию `create` - будет создан кластер
2. Выполнить операцию `create_database` - будет создана база данных
3. Выполнить операцию `create_user` - будет создан пользователь (выбрать доступ подключения к БД, созданной в п.2)

## Примеры подключения

### Подключение через HTTP-интерфейс

```bash
# Проверка доступности кластера
curl "http://<username>:<password>@<host>:8123/" -d "SELECT 1"

# Выполнение запроса
curl "http://<username>:<password>@<host>:8123/" -d "SHOW DATABASES"
```

## Простые кейсы
*Создать БД и обычной таблицы*
```clickhouse
CREATE TABLE database.table
(
id UInt64,
value String
)
ENGINE = MergeTree()
ORDER BY id;

INSERT INTO database.table SELECT number, toString(number) FROM numbers(10000000);

SELECT count() FROM database.table;
```
Базы и таблицы не реплицируются без специального ключа (`ON CLUSTER 'clickhousek8s'`)
В случае создания в стиле, описанным выше, необходимо будет выполнять действия на всех шардах/репликах


*Создание БД и шардированной таблицы*
```clickhouse
CREATE TABLE database.localUsers
(
id UInt64,
value String
)
ENGINE = MergeTree()
ORDER BY id;

CREATE TABLE database.shardedTable
AS localUsers
ENGINE = Distributed('clickhousek8s', 'database', 'localUsers', id);

INSERT INTO shardedTable SELECT number, toString(number) FROM numbers(10000000);

SELECT count() FROM shardedTable;
```
Важный момент - в данном примере таблицы придётся также выполнять на всех нодах ClickHouse

*Создание реплицируемой и шардированной таблицы*
```clickhouse
CREATE TABLE IF NOT EXISTS database.localUsers ON cluster 'clickhousek8s'
(
user_id UInt64,
name String,
email String
)
ENGINE = ReplicatedMergeTree(
'/clickhouse/tables/{shard}/localUsers',
'{replica}'
)
ORDER BY user_id;

CREATE TABLE IF NOT EXISTS database.users ON cluster 'clickhousek8s'
AS database.localUsers
ENGINE = Distributed('clickhousek8s', 'database', 'localUsers', rand());

INSERT INTO database.users VALUES (1, 'Alice', 'alice@example.com');
INSERT INTO database.users VALUES (2, 'Bob', 'bob@example.com');
INSERT INTO database.users VALUES (3, 'Charlie', 'charlie@example.com');
INSERT INTO database.users VALUES (4, 'David', 'david@example.com');
INSERT INTO database.users VALUES (5, 'Gosha', 'gosha@example.com');
INSERT INTO database.users VALUES (6, 'Eve', 'eve@example.com');
INSERT INTO database.users VALUES (7, 'Frank', 'frank@example.com');
INSERT INTO database.users VALUES (8, 'Grace', 'grace@example.com');
INSERT INTO database.users VALUES (9, 'Hannah', 'hannah@example.com');
INSERT INTO database.users VALUES (10, 'Ivan', 'ivan@example.com');

SELECT * FROM database.localUsers;
SELECT * FROM database.users;

SELECT COUNT(*) AS total_users FROM database.users;
SELECT COUNT(*) AS total_users_local FROM database.localUsers;
```","operations":[{"svcOperationId":186,"operation":"create_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/ClickHouse/job/create_database/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"База данных создаётся на всех репликах кластера ClickHouse"},{"svcOperationId":189,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/ClickHouse/job/modify/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":188,"operation":"delete_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/ClickHouse/job/delete_database/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"Необратимое действие!!!
Трижды подумай, заблокируй телефон тимлида и не выполняй это действие"},{"svcOperationId":184,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/ClickHouse/job/delete/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"Удаление возможно только после остановки сервиса через операцию `suspend`
После выполнения операции необходимо выждать определенное кол-во времени"},{"svcOperationId":182,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/ClickHouse/job/suspend/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"Операция приводит к удалению всех подов
Persistent Volume остаются нетронутыми"},{"svcOperationId":181,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/ClickHouse/job/create/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"Операция создания кластера ClickHouse

Для подключения к кластеру также необходимо создать базу данных через операцию `create_database` и создание пользователя через операцию `create_user`"},{"svcOperationId":187,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/ClickHouse/job/delete_user/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":185,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/ClickHouse/job/create_user/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":183,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/ClickHouse/job/resume/view/tags/job/0.0.4/buildWithParameters","descr":"Восстанавливает все поды и приводит кластер в работоспособный вид","man":null}]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/13.json b/artifacts/api-meta/prod/services/13.json new file mode 100644 index 0000000..2370168 --- /dev/null +++ b/artifacts/api-meta/prod/services/13.json @@ -0,0 +1 @@ +{"queryDurationMs":59,"svc":{"svcId":13,"svc":"S3 бакет","svcShort":"s3bucket","code":null,"version":"1.0.3","orchestratorName":"Bucket","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/s3/job/Bucket/job/create/view/tags/job/1.0.3/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":1,"iconSrc":"https://upload.wikimedia.org/wikipedia/commons/3/32/AWS_Simple_Icons_Storage_Amazon_S3.svg","descr":"Бакет в сервисе S3","man":null,"operations":[{"svcOperationId":52,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/s3/job/Bucket/job/delete/view/tags/job/1.0.3/buildWithParameters","descr":null,"man":null},{"svcOperationId":51,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/s3/job/Bucket/job/create/view/tags/job/1.0.3/buildWithParameters","descr":null,"man":null}]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/149.json b/artifacts/api-meta/prod/services/149.json new file mode 100644 index 0000000..d5c514f --- /dev/null +++ b/artifacts/api-meta/prod/services/149.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svc":{"svcId":149,"svc":"VALO Cloud","svcShort":"valoTenant","code":null,"version":"0.0.1","orchestratorName":"Tenant","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/valo/job/Tenant/job/create/view/tags/job/0.0.1/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":8,"iconSrc":null,"descr":"Корпоративная система обмена и синхронизации файлов","man":"# Инструкция по развертыванию Тенант Valo через платформу

## 1. Общая информация
Тенант Valo — логический изолированный экземпляр сервиса VALO Cloud, предоставляющий защищённое облачное хранилище, синхронизацию данных и доступ к документам с различных устройств. При создании тенант автоматически разворачивается в тестовом режиме сроком на 2 месяца. Перевод в промышленную эксплуатацию выполняется отдельной операцией.

### Доступные операции

* **create** — создание нового тенанта в тестовом режиме сроком на 2 месяца.
* **modify** — изменение настроек тенанта, включая перевод из ТЕСТ в ПРОД.
* **suspend** — выключение (приостановка работы) тенанта.
* **resume** — включение ранее приостановленного тенанта.
* **delete** — удаление тенанта; доступно только после выполнения операции suspend.

---

## 2. Параметры развертывания

Параметры входных данных операции **create**:

### Платформа для развертывания
Описание: платформа, на которой будет создан тенант.
Пример значения: `valo.ngcloud.ru`.

### DNS-Префикс
Описание: Будет добавлено в зону valo.ngcloud.ru
Пример значения: `mysimpledomain`.

### Параметры хранилища
Описание: Сколько места будет выделено под использование в тенанте. Данные хранятся в S3. Размер указывается в Gigabytes
Пример значения: `10`.

### Настройки тенанта
Описание: Ряд конфигурации Valo-тенанта, такие как настройки пользователя и доступного функционала
Пример значения: `опционально в рамках настройки`.

---

## 3. Рекомендованные характеристики

### Тестовое окружение
Достаточно развернуть тенант в ТЕСТ. Срок предоставляется в 2 месяца. По истечению срока тенант автоматически переводится в `suspend` на стороне ресурсной платформы

### Промышленное окружение
Для разблокировки используйте операцию `modify`

---

## 4. Выходные параметры

Услуга предоставляет следующие выходные параметры (формируются в процессе операций):

### Статус тенанта
Отражает текущее состояние и параметры.

---

## 5. Дополнительная информация
Тенант всегда создаётся в режиме ТЕСТ и не может быть сразу переведён в ПРОД без операции modify.
Удаление тенанта возможно только после его выключения с помощью операции suspend.
Срок тестового режима составляет 2 месяца с момента создания.
Операции suspend и resume используются для временного управления доступностью сервиса без потери конфигурации.
","operations":[{"svcOperationId":205,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/valo/job/Tenant/job/resume/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":206,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/valo/job/Tenant/job/delete/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":204,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/valo/job/Tenant/job/suspend/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":203,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/valo/job/Tenant/job/modify/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":202,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/valo/job/Tenant/job/create/view/tags/job/0.0.1/buildWithParameters","descr":"При создании тенант предоставляется всегда в ТЕСТ (2 месяца с момента создания)
Для продления и переведения в ПРОД, воспользуйтесь в дальнейшем операцией modify","man":null}]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/150.json b/artifacts/api-meta/prod/services/150.json new file mode 100644 index 0000000..d167015 --- /dev/null +++ b/artifacts/api-meta/prod/services/150.json @@ -0,0 +1 @@ +{"queryDurationMs":66,"svc":{"svcId":150,"svc":"Kubernetes кластер Штурвал","svcShort":"k8sSthutrvalCluster","code":"paas.k8s.stw","version":"1.0.1","orchestratorName":"SthutrvalCluster","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SthutrvalCluster/job/create/view/tags/job/1.0.2/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Платформа управления K8s
","man":"Перед разворачиванием убедиться, что в облаке есть 2 свободных невыделенных IP в пуле","operations":[{"svcOperationId":110,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SthutrvalCluster/job/modify/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":109,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SthutrvalCluster/job/delete/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":108,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SthutrvalCluster/job/create/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":174,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SthutrvalCluster/job/resume/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":179,"operation":"update_secrets","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SthutrvalCluster/job/update_secrets/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":253,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SthutrvalCluster/job/reconcile/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":173,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SthutrvalCluster/job/suspend/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null}]},"runDurationMs":66} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/19.json b/artifacts/api-meta/prod/services/19.json new file mode 100644 index 0000000..aab5a7f --- /dev/null +++ b/artifacts/api-meta/prod/services/19.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svc":{"svcId":19,"svc":"Организация в Cloud Director","svcShort":"vcOrg","code":null,"version":"1.0.2","orchestratorName":"Org","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Org/job/create/view/tags/job/1.0.2/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":2,"iconSrc":null,"descr":null,"man":"# Инструкция по развертыванию Организация в Cloud Director через платформу

## 1. Общая информация

Сервис **Организация в Cloud Director** предназначен для управления изолированными организационными единицами (тенантами) внутри инфраструктуры Cloud Director. Он обеспечивает создание, модификацию и администрирование организаций, предоставление им облачных ресурсов, а также контроль уровня доступа. Сервис используется для организации рабочих окружений потребителей, управления жизненным циклом организаций и их сетевой инфраструктурой.

### Доступные операции

**create** — Создание новой организации с заданными характеристиками и типом доступа.
**delete** — Удаление организации после перехода в состояние suspend; приводит к удалению всех связанных сущностей.
**modify** — Изменение параметров внутри организации (на текущий момент поддерживается изменение ipSpaces).
**suspend** — Заморозка организации, ограничение возможности изменения и добавления сущностей.
**resume** — Разморозка организации, восстановление функций управления.

---

## 2. Параметры развертывания

Параметры входных данных операции **create**:

### Платформа для развертывания
Описание: платформа, на которой будет создана организация.
Пример значения: `ngcloud.ru`.

### Тип организации
Описание: тип создаваемой организации.
Варианты:
- `iaas` — организация с прямым доступом к облаку и авторизацией через Keycloak.
- `saas` — организация под управлением Nubes, без прямого доступа к облаку.

---

## 3. Рекомендованные характеристики

### Тестовое окружение
- Тип организации: `iaas` для обеспечения полного доступа к облачным ресурсам и самостоятельного управления.

### Промышленное окружение
- Тип организации: `saas` (упрощённая модель использования).

---

## 4. Выходные параметры

Услуга предоставляет следующие выходные параметры (формируются в процессе операций):

### Url организации
Для быстрого доступа в тенант

### Статус организации
Отражает текущее состояние и параметры.

---

## 5. Дополнительная информация

- Для конфигурации внешних IP внутри организации необходимо предварительно создать:
-- хотя бы один **Виртуальный датацентр (VDC)** привязанный к этой организации;
-- хотя бы один **Сетевой шлюз периметра (Edge Gateway)**, привязанный к vdc выше.
- Удаление организации возможно только через 14 дней после перевода в состояние suspend.
- Удаление организации приводит к удалению всех связанных сущностей: VDC, Edge Gateway, пулов IP, сетей, ВМок и иных объектов.
- Операция suspend не останавливает виртуальные машины, но блокирует любые изменения инфраструктуры внутри организации.
- Для iaas-организаций доступ осуществляется через Keycloak.","operations":[{"svcOperationId":143,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Org/job/suspend/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":"Операция **не останавливает ВМки** в облаке, но не даёт редактировать все сущности внутри тенанта"},{"svcOperationId":137,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Org/job/delete/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":"Удалить возможно только через 14 дней после выполнения операции `suspend`
**ОСТОРЖНО: Удаление приводит к полному удалению всех сущностей внутри этого тенанта**

Если существуют инстансы VDC, Edge, vApp, Vm или Kubernetes-кластер Штурвал, которые были созданы, из ЛК удалены не будут. Необходимо обратиться к `технической поддержке` для удаления инстансов"},{"svcOperationId":144,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Org/job/resume/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":136,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Org/job/create/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":"`IaaS` - Доступ в Keycloak предоставляется пользователю, который создаёт услугу
`SaaS` - Без доступа к Keycloak"},{"svcOperationId":207,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Org/job/modify/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":"Для возможности изменения параметров предварительно необходимо создать **Виртуальный датацентр (VDC)**, потом **Сетевой шлюз периметра (Edge Gateway)**
Также при удалении ipSpaces убедитесь, что все внешние IP удалены. В случае если хоть одна привязка vIP есть, данный ipSpace удалён **не будет**"},{"svcOperationId":249,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Org/job/reconcile/view/tags/job/1.0.2/buildWithParameters","descr":"Необходимо для актуализации состояния организации.
Операция приводит инстанс услуги к текущей целевой модели, принятой в Личном Кабинете: обновляет информацию из Cloud Director, производит миграцию состояния услуги до последней версии схемы","man":null}]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/2.json b/artifacts/api-meta/prod/services/2.json new file mode 100644 index 0000000..00944c9 --- /dev/null +++ b/artifacts/api-meta/prod/services/2.json @@ -0,0 +1 @@ +{"queryDurationMs":47,"svc":{"svcId":2,"svc":"Темплейт k8s","svcShort":"template","code":null,"version":"0.0.7","orchestratorName":"Template","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Template/job/create/view/tags/job/0.0.7/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Болванка для тестирования","man":null,"operations":[{"svcOperationId":74,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Template/job/create/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":76,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Template/job/modify/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":98,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Template/job/resume/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":75,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Template/job/delete/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":97,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Template/job/suspend/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null}]},"runDurationMs":47} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/20.json b/artifacts/api-meta/prod/services/20.json new file mode 100644 index 0000000..d0ac1c8 --- /dev/null +++ b/artifacts/api-meta/prod/services/20.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svc":{"svcId":20,"svc":"Организация [DEPRECATED]","svcShort":"vcOrgSaas","code":null,"version":"1.0.0","orchestratorName":"OrgSaas","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/OrgSaas/job/create/view/tags/job/1.0.0/buildWithParameters","isProductionReady":false,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Без интеграции Keycloak","man":"Верхнеуровневая сущность создаваемая для Заказчика.
Внутри Организация вы можете создать: Виртуальные датацентры, Каталоги.","operations":[{"svcOperationId":8,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/OrgSaas/job/create/view/tags/job/1.0.0/buildWithParameters","descr":"Создание организации в Cloud Director
Id в клауд директоре создаётся на основе contragentCode","man":"Создание организации в Cloud Director
Id в клауд директоре создаётся на основе contragentCode"},{"svcOperationId":23,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/OrgSaas/job/delete/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null},{"svcOperationId":119,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/OrgSaas/job/resume/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null},{"svcOperationId":118,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/OrgSaas/job/suspend/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/21.json b/artifacts/api-meta/prod/services/21.json new file mode 100644 index 0000000..2bd2a5d --- /dev/null +++ b/artifacts/api-meta/prod/services/21.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svc":{"svcId":21,"svc":"Виртуальный датацентр (vDC)","svcShort":"vc_vdc","code":null,"version":"1.0.5","orchestratorName":"Vdc","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vdc/job/create/view/tags/job/1.0.5/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Выделение вычислительных ресурсов","man":"# Инструкция по развертыванию Виртуальный датацентр (vDC) через платформу

## 1. Общая информация

**Виртуальный датацентр (vDC)** — это логическая изолированная среда в VMware Cloud Director, предназначенная для размещения и управления виртуальными машинами, сетевой инфраструктурой и ресурсами хранения. Сервис обеспечивает выделение вычислительных ресурсов под конкретную организацию и предоставляет гибкие параметры масштабирования, контроля потребления и разделения ресурсов.

### Доступные операции

**create** — Создание виртуального датацентра (vDC) с заданными параметрами CPU, RAM, Storage и сетевой конфигурацией.
**delete** — Удаление vDC. Требуется предварительный перевод vDC в состояние *suspend*. Полное удаление возможно через 14 дней.
**modify** — Внесение изменений в параметры ресурсов (CPU/RAM/Storage), выделенных для vDC.
**suspend** — Заморозка vDC. Новые ресурсы или изменения внутри vDC становятся невозможными, работа ВМ не останавливается.
**resume** — Разморозка vDC. Восстановление возможности управления сущностями внутри vDC.

---

## 2. Параметры развертывания

Ниже перечислены входные параметры операции **create**.

### UUID Организации
Уникальный идентификатор организации в Cloud Director. Перед созданием vDC требуется предварительное создание услугу `Организация в Cloud Director`.

### Provider VDC в Cloud Director
Свойство ресурсной платформы, определяющее, какой пул физических ресурсов будет использоваться.

### Network Pool в Cloud Director
Определяет возможности сетевой конфигурации, включая создание Edge Gateway и выход во внешние сети.

### Гарантированная доля ЯДЕР
Гарантированный процент вычислительных ресурсов (CPU), закрепленный за vDC. Значение устанавливается разово при создании.

### Гарантированная доля ОЗУ
Гарантированный процент оперативной памяти, закрепленный за vDC. Также задаётся один раз при создании.

### Сколько аллоцировать на VDC ЯДЕР
Количество виртуальных ядер, выделяемых в рамках vDC.

### Сколько аллоцировать на VDC ОЗУ
Количество оперативной памяти в GB, выделяемой для vDC.

### Конфигурация Storage
Набор дисковых политик и их объёмов, выделяемых для vDC. Указывается имя политики и требуемый размер (GB).

---

## 3. Рекомендованные характеристики

### Тестовое окружение

- Количество ядер CPU: 10–20
- Аллоцируемая RAM: 16–64 GB
- Гарантированная доля CPU: 20%
- Гарантированная доля RAM: 20%
- Storage:
- Политика `SATA`
- Объём: 100–300 GB

### Промышленное окружение

- Количество ядер CPU: 16–128
- Аллоцируемая RAM: 64–512 GB
- Гарантированная доля CPU: 50%
- Гарантированная доля RAM: 50%
- Storage:
- Политики уровня `SSD`
- Объём: 1–10 TB, выбор несколько политик под разные нагрузки

---

## 4. Выходные параметры

Выходные параметры формируются операцией **create** (и используются другими операциями):

### Имя vDC
Уникальный идентификатор созданного виртуального датацентра. Используется в дальнейших операциях (modify, suspend, delete).

### Параметры выделенных ресурсов
Подтверждение итогового объёма CPU/RAM/Storage, выделенных vDC. Используются для учёта и контроля потребления.

---

## 5. Дополнительная информация

- Перед созданием vDC необходимо обеспечить наличие корректно созданной организации и доступных пула ресурсов ресурсной платформы.
- Гарантированная доля CPU и RAM задаётся **однократно при создании vDC**. После развертывания изменить эти значения невозможно; для изменения необходимо пересоздать vDC.
- Удаление vDC возможно только через **14 дней после перевода в состояние *suspend***. Удаление очищает все связанные сущности (ВМ, сети, каталоги), поэтому необходимо убедиться, что данные перенесены.
- Платформа Cloud Director использует концепцию изолированных организационных ресурсов, поэтому корректная настройка Provider VDC и Network Pool является обязательной при создании vDC.
- При изменении параметров (modify) изменяются только показатели CPU, RAM и Storage. Сетевые параметры и гарантированные доли остаются неизменными.
","operations":[{"svcOperationId":172,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vdc/job/resume/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null},{"svcOperationId":171,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vdc/job/suspend/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":"Операция **не останавливает ВМки** в облаке, но не даёт редактировать все сущности внутри VDC"},{"svcOperationId":112,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vdc/job/modify/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null},{"svcOperationId":9,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vdc/job/create/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null},{"svcOperationId":24,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vdc/job/delete/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":"Удалить возможно только через 14 дней после выполнения операции `suspend`
**ОСТОРЖНО: Удаление приводит к полному удалению всех сущностей внутри этого VDC**

Если существуют инстансы Edge, vApp, Vm или Kubernetes-кластер Штурвал, которые были созданы, из ЛК удалены не будут. Необходимо обратиться к `технической поддержке` для удаления инстансов"},{"svcOperationId":250,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vdc/job/reconcile/view/tags/job/1.0.5/buildWithParameters","descr":"Необходимо для актуализации состояния виртуального ДЦ.
Операция приводит инстанс услуги к текущей целевой модели, принятой в Личном Кабинете: обновляет информацию из Cloud Director, производит миграцию состояния услуги до последней версии схемы","man":null}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/22.json b/artifacts/api-meta/prod/services/22.json new file mode 100644 index 0000000..4912d6c --- /dev/null +++ b/artifacts/api-meta/prod/services/22.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svc":{"svcId":22,"svc":"Сетевой шлюз периметра (Edge)","svcShort":"vc_nsxt","code":null,"version":"0.0.9","orchestratorName":"Nsxt","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Nsxt/job/create/view/tags/job/0.0.9/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Обеспечение сетевой доступности в тенанте","man":"# Инструкция по развертыванию Сетевой шлюз периметра (Edge) через платформу

## 1. Общая информация

Сервис **Сетевой шлюз периметра (Edge)** предназначен для создания периметрового сетевого шлюза в рамках одного виртуального датацентра (vDC) или группы виртуальных датацентров (groupvDC).
При создании автоматически разворачивается routed-сеть с адресным пространством `10.10.102.0/24`.
Сервис обеспечивает сетевую изоляцию, маршрутизацию, а также может включать функциональность балансировщика нагрузки AVI (ALB) для последующей интеграции, включая поддержку кластеров Штурвал.

### Доступные операции

**create** — Создание нового Edge с привязкой к vDC или groupvDC и развёртыванием routed-сети.
**delete** — Удаление ранее созданного Edge. Недоступно при наличии зависимых услуг (vApp, VM, Кластер Штурвал).
**modify** — Изменение параметров и сетевых настроек существующего Edge.

---

## 2. Параметры развертывания

Ниже приведены параметры операции **create**.

### Тип родительской услуги
Определяет контекст размещения Edge.
Допустимые значения: `vdc`, `groupvdc`.
Использование:
- При выборе `vdc` обязателен параметр **UUID VDC**.
- При выборе `groupvdc` обязателен параметр **UUID Группы VDC**.

### UUID VDC
Идентификатор виртуального датацентра.
Необходимо предварительно создать vDC через услугу «Виртуальный датацентр (vDC)».
Указывается только при выборе родительского типа `vdc`.

### UUID Группы VDC
Идентификатор группы виртуальных датацентров.
Создаётся через услугу «Группа виртуальных датацентров (groupvDC)».
Используется при выборе родительского типа `groupvdc`.

### Включить ALB
Флаг активации AVI Load Balancer в Cloud Director.
Пример значения: `true`/`false`.
Нужен для развёртывания кластера Штурвал и возможности создания Virtual Services.

### Наименование segroup
Имя сервиса групп (segroup) на уровне ресурсной платформы.
Обязательно при включённом ALB.
Определяет группу, в которой будут выделяться пулы AVI для Virtual Services.

### virtualServicesCount
Количество резервируемых виртуальных сервисов (Virtual Services) на AVI.
Типичное значение: 1–10 в зависимости от нагрузки.

---

## 3. Рекомендованные характеристики

### Тестовое окружение (Test)

- Тип родительской услуги: `vdc`
- virtualServicesCount: 1–2
- ALB: выключен по умолчанию (включать только при необходимости тестирования Штурвала)
- segroup: задаётся только при включённом ALB
- VDC гарантии CPU/RAM: минимальные (поскольку изменить их после создания нельзя)

### Промышленное окружение (Production)

- Тип родительской услуги: `groupvdc` при работе с распределёнными нагрузками или `vdc` для локализованных проектов
- virtualServicesCount: 3–10, исходя из предполагаемого количества публикаций
- ALB: включён, если требуется высокая доступность сервисов или используется кластер Штурвал
- segroup: рекомендуется использовать выделенную группу под проект
- VDC гарантии CPU/RAM: повышенные, с учётом того, что изменить их после создания невозможно без пересоздания vDC

---

## 4. Выходные параметры

### Имя Edge
Уникальное название созданного сетевого шлюза, используется для ссылок и дальнейших операций.

### Имя routed-сети
Автоматически созданная routed-сеть с подсетью `10.10.102.0/24`, используется для подключения ресурсов.

### Параметры Edge
Набор параметров, указанных пользователем при создании: тип услуги, ALB, segroup, virtualServicesCount и др.
Используются в операциях modify и для анализа состояния сервиса.

---

## 5. Дополнительная информация

- В рамках сервиса **один раз при создании задаётся гарантированная доля CPU/RAM vDC**. Изменить её невозможно — требуется пересоздание vDC.
- Удаление Edge недоступно при наличии зависимых ресурсов (vApp, VM, кластер Штурвал).
- При использовании ALB необходимо корректно указывать segroup, чтобы обеспечить корректное выделение пулов AVI.
- При выборе режима `groupvdc` следует учитывать распределение нагрузки между несколькими vDC.
- SNAT для всех ресурсов внутри Edge можно активировать через операцию modify (параметры выделения VIP и ipSpace).

","operations":[{"svcOperationId":25,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Nsxt/job/delete/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":"Невозможно удалить если routed-сеть в Edge связана с:
- vApp
- VM
- Kubernetes-кластер Штурвал

Запустить операцию возможно, но будет ошибка"},{"svcOperationId":111,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Nsxt/job/modify/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":"Для создания SNAT Правила убедитесь, что в организации есть свободные IP
Редактировать кол-во свободных IP можно в услуге `Организация в Cloud Director` -> `modify`"},{"svcOperationId":252,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Nsxt/job/reconcile/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null},{"svcOperationId":10,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Nsxt/job/create/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null}]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/23.json b/artifacts/api-meta/prod/services/23.json new file mode 100644 index 0000000..c44403b --- /dev/null +++ b/artifacts/api-meta/prod/services/23.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svc":{"svcId":23,"svc":"VM в Cloud Director (старый формат) (vc_vm)","svcShort":"vc_vm","code":null,"version":"0.0.3","orchestratorName":"Vm","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vm/job/create/view/tags/job/0.0.3/buildWithParameters","isProductionReady":false,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Виртуальная машина без каких-либо особенностей.
Данная услуга запускает vc_ip для выдачи белого адреса и подключения к ВМ","man":"Виртуальная машина без каких-либо особенностей.
Данная услуга запускает vc_ip для выдачи белого адреса и подключения к ВМ","operations":[{"svcOperationId":68,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vm/job/modify/view/tags/job/0.0.3/buildWithParameters","descr":"Операция автоматически останавливает ВМ.","man":"Операция автоматически останавливает ВМ."},{"svcOperationId":29,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vm/job/delete/view/tags/job/0.0.3/buildWithParameters","descr":null,"man":null},{"svcOperationId":27,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vm/job/suspend/view/tags/job/0.0.3/buildWithParameters","descr":null,"man":null},{"svcOperationId":28,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vm/job/resume/view/tags/job/0.0.3/buildWithParameters","descr":null,"man":null},{"svcOperationId":26,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vm/job/create/view/tags/job/0.0.3/buildWithParameters","descr":null,"man":null}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/24.json b/artifacts/api-meta/prod/services/24.json new file mode 100644 index 0000000..aab1994 --- /dev/null +++ b/artifacts/api-meta/prod/services/24.json @@ -0,0 +1 @@ +{"queryDurationMs":127,"svc":{"svcId":24,"svc":"DEPRECATED Правила маршрутизации для VM (vc_nat)","svcShort":null,"code":null,"version":null,"orchestratorName":null,"createUrl":null,"isProductionReady":false,"resourceRealmTypeId":null,"iconSrc":null,"descr":"Правила маршрутизации в Cloud Director. Требует наличие сетей, ВМ
DEPRECATED","man":"Правила маршрутизации в Cloud Director. Требует наличие сетей, ВМ
DEPRECATED","operations":[]},"runDurationMs":127} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/25.json b/artifacts/api-meta/prod/services/25.json new file mode 100644 index 0000000..804c0be --- /dev/null +++ b/artifacts/api-meta/prod/services/25.json @@ -0,0 +1 @@ +{"queryDurationMs":63,"svc":{"svcId":25,"svc":"Публичные IP адреса","svcShort":"vcexternalip","code":null,"version":"0.0.9","orchestratorName":"Ip","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Ip/job/create/view/tags/job/0.0.9/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Резервирование IP адреса","man":"**Обычно эта услуга разворачивается автоматически при развёртывании более сложных услуг**
Вручную создавать можно, однако услуга требует много параметров, о которых можно просто не знать

Резервировать публичные IP адреса можно только после создания NGcloud Organization, NGcloud Виртуальный датацентр, NGcloud Каталог, Сетевой шлюз периметра.
Вы можете назначить IP адрес для существующего экземпляра сервиса.","operations":[{"svcOperationId":56,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Ip/job/create/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null},{"svcOperationId":57,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Ip/job/delete/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null},{"svcOperationId":197,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Ip/job/modify/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null}]},"runDurationMs":63} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/26.json b/artifacts/api-meta/prod/services/26.json new file mode 100644 index 0000000..dd61106 --- /dev/null +++ b/artifacts/api-meta/prod/services/26.json @@ -0,0 +1 @@ +{"queryDurationMs":59,"svc":{"svcId":26,"svc":"Виртуальный каталог ВМ (vApp)","svcShort":"vapp","code":null,"version":"0.0.8","orchestratorName":"Vapp","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vapp/job/create/view/tags/job/0.0.8/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Группировка виртуальных машин","man":"# Инструкция по развертыванию Виртуальный каталог ВМ (vApp) через платформу

## 1. Общая информация

**Виртуальный каталог ВМ (vApp)** — это логическая каталог, объединённая в единый управляемый объект. Сервис предназначен для совместного развертывания, управления жизненным циклом и сетевого взаимодействия набора связанных ВМ. Основные функции включают:
- централизованное управление включением, выключением и приостановкой группы ВМ;
- унифицированный сетевой доступ через привязанный Edge-шлюз;

### Доступные операции

**create** — Создание нового vApp с привязкой к заданным услугам VDC и Edge
**delete** — Удаление существующего vApp. Требуется предварительный перевод vApp в состояние *suspend*. Полное удаление возможно через 14 дней.
**suspend** — Остановка vApp (выключение всех ВМ внутри каталога)
**resume** — Запуск vApp (включение всех ВМ внутри каталога)

---

## 2. Параметры развертывания

Параметры берутся из операции **create**.

### UUID Услуги VDC
Уникальный идентификатор услуги «Виртуальный датацентр (vDC)».
Используется для определения вычислительной инфраструктуры, в которой будет развернут vApp.

### UUID Услуги Edge
Уникальный идентификатор услуги «Сетевой шлюз периметра (Edge)».
Обеспечивает маршрутизацию и сетевое подключение. Может быть привязан к группе VDC, поэтому выбирается отдельно.

### Имя vApp
Строгое имя, соответствующее маске формирования DNS-имени.
Используется как часть в DNS-имени при создании виртуальных машин.

---

## 3. Рекомендованные характеристики
Так как является промежуточным этапом для создания ВМ, все характеристики описываются в услуге `Виртуальная машина`

---

## 4. Выходные параметры

### Параметры vApp
Заданные при создании vApp

---

## 5. Дополнительная информация

- Привязка к VDC и Edge осуществляется раздельно, поскольку один Edge может обслуживать несколько VDC (через услугу `Группа виртуальных датацентров (groupvDC)`). Это гарантирует возможность развернуть ВМ в единой сети, но в разных виртуальных датацентрах.
- Перед удалением vApp необходимо вручную перевести его в состояние **suspend**. Удаление возможно только спустя 14 дней после этого шага.
- Операция delete удаляет весь vApp полностью, включая все виртуальные машины, связанные с ним.
- Рекомендуется заранее планировать сетевые связи и назначения DNS-имён для обеспечения корректной работы сервисов, развернутых внутри vApp.
- При проектировании инфраструктуры следует учитывать зависимости между Edge-шлюзом, VDC и размещаемыми ВМ, чтобы избежать ограничений при масштабировании и интеграции.","operations":[{"svcOperationId":209,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vapp/job/resume/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null},{"svcOperationId":208,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vapp/job/suspend/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null},{"svcOperationId":70,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vapp/job/delete/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null},{"svcOperationId":69,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/Vapp/job/create/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null}]},"runDurationMs":60} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/27.json b/artifacts/api-meta/prod/services/27.json new file mode 100644 index 0000000..9beccab --- /dev/null +++ b/artifacts/api-meta/prod/services/27.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svc":{"svcId":27,"svc":"VM в Cloud Director (vc_vmV2)","svcShort":"vc_vm_v2","code":null,"version":"0.0.1","orchestratorName":"VmV2","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VmV2/job/create/view/tags/job/0.0.1/buildWithParameters","isProductionReady":false,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Виртуальная машина с возможностью настройки Cloud Init
Можно развернуть в услуге несколько ВМ
В зависимости от настроек можно выдавать на ВМ vip + dns","man":null,"operations":[{"svcOperationId":104,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VmV2/job/modify/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":103,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VmV2/job/suspend/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":101,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VmV2/job/delete/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":102,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VmV2/job/resume/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":100,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VmV2/job/create/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/28.json b/artifacts/api-meta/prod/services/28.json new file mode 100644 index 0000000..3a8ec5b --- /dev/null +++ b/artifacts/api-meta/prod/services/28.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svc":{"svcId":28,"svc":"Виртуальная машина","svcShort":"vc_vm_v3","code":null,"version":"0.0.8","orchestratorName":"VmV3","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VmV3/job/create/view/tags/job/0.0.8/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Создание виртуальной машины","man":"# Документация по разворачиванию ВМ в Личном кабинете

Данный сервис позволяет разворачивать виртуальные машины (ВМ) непосредственно из Личного кабинета (ЛК).

## Доступные операции
- **create** — Создание виртуальной машины
- **delete** — Удаление виртуальной машины
- **resume** — Запуск виртуальной машины
- **suspend** — Остановка виртуальной машины

---

## Параметры для развёртывания ВМ

### Обязательные параметры:

**vappUid**
UUID vApp, в которой будет создаваться виртуальная машина.
*Пример: WZ00400*

**vmName**
Уникальное имя виртуальной машины.
*Пример: test-vm*

**vmCpu**
Количество ядер процессора. Должно быть больше 0.
*Пример: 1*

**vmRam**
Объем оперативной памяти в гигабайтах. Должно быть больше 0.
*Пример: 1*


**accessPortList**
Белый список портов для доступа к виртуальной машине извне в формате JSON.
*Пример: ["22","10050]*

**imageVm**
Образ операционной системы для развёртывания.
*Доступные значения: RockyLinux_9-16G-cloudinit, Ubuntu_22-20G, Debian_13-20G*

**userLogin**
Логин пользователя для SSH-доступа.
*По умолчанию: myuser*

**userPublicKey**
Публичный SSH-ключ пользователя в формате OpenSSH.
*Пример: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...*

**needAddZabbixTemplate**
Значение истина\\ложь, определяющее будет ли добавлен хост в zabbix.
*Пример: true*

### Опциональные параметры:

**accessIpList**
Белый список IP-адресов для доступа к виртуальной машине в формате JSON. Если оставить пустым, вм будет доступена со всех адресов.
*Пример: ["192.168.1.1", "10.0.0.5"]*

**vmDisk**
Размер дополнительного диска в гигабайтах. Должно быть больше 0.
*Пример: 50*

**ipSpaceName**
Внешний IP-адрес. Если не требуется — укажите значение "no-needed" (В нем не будет работать сбор метрик zabbix).

**cloudInit**
YAML-скрипт для кастомизации системы через cloud-init.

---

## Доступные образы операционных систем

### RockyLinux_9-16G-cloudinit
Базовый образ на основе Rocky Linux 9 (Rocky-9.6-x86_64-minimal) для серверных задач.
- Размер системного диска: 16 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

### Ubuntu_22-20G
Образ на основе Ubuntu Server 22.04 LTS для облачного окружения.
- Размер системного диска: 20 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

### Debian_13-20G
Образ на основе Debian 13 (Trixie) для стабильной серверной работы.
- Размер системного диска: 20 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

---

## Пример использования Cloud-init

```yaml
users:
- name: myuser
sudo: ALL=(ALL) NOPASSWD:ALL
groups: sudo
shell: /bin/bash
ssh-authorized-keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...

packages:
- nginx

runcmd:
- systemctl enable --now nginx
- systemctl restart nginx
```

---

## Результат выполнения

После успешного развёртывания в Личном кабинете появится новая виртуальная машина с заданными характеристиками. SSH-доступ осуществляется с использованием указанных логина и публичного ключа.

---

## Важные примечания

### Особенности работы:
- Для отключения внешнего IP укажите значение "no-needed" в параметре ipSpaceName
- Параметр cloudInit является опциональным

### Ограничения:
- Не рекомендуется использовать продолжительные инструкции в cloud-init (таймаут 5 минут)
- Не поддерживается запись файлов через cloud-init
- Не реализовано создание резервных копий ВМ

---

## Диагностика проблем с cloud-init

### Основной лог-файл:
```bash
/var/log/cloud-init.log
```

### Пакет не устанавливается:
- Проверьте доступность пакета в репозитории
- Убедитесь в правильности написания имени пакета
- Попробуйте установить вручную: `apt install <имя_пакета>` (Debian/Ubuntu) или `dnf install <имя_пакета>` (Rocky Linux)

### Команда не выполняется:
- Проверьте наличие требуемой утилиты в системе
- Убедитесь в правильности синтаксиса команды
- Попробуйте выполнить команду вручную для диагностики","operations":[{"svcOperationId":133,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VmV3/job/delete/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null},{"svcOperationId":134,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VmV3/job/suspend/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null},{"svcOperationId":135,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VmV3/job/resume/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null},{"svcOperationId":164,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VmV3/job/redeploy/view/tags/job/0.0.8/buildWithParameters","descr":"Полная потеря данных гарантирована
Но будет полностью сброшенная машина","man":null},{"svcOperationId":159,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VmV3/job/modify/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null},{"svcOperationId":132,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VmV3/job/create/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":"# Документация по использованию услуги развёртывания ВМ в Личном кабинете

Данный сервис позволяет разворачивать виртуальные машины (ВМ) непосредственно из Личного кабинета (ЛК).

## Доступные операции
- **create** — Создание виртуальной машины
- **delete** — Удаление виртуальной машины
- **resume** — Запуск виртуальной машины
- **suspend** — Остановка виртуальной машины

---

## Параметры для развёртывания ВМ

### Обязательные параметры:

**vappUid**
UUID vApp, в которой будет создаваться виртуальная машина.
*Пример: WZ00400*

**vmName**
Уникальное имя виртуальной машины.
*Пример: test-vm*

**vmCpu**
Количество ядер процессора. Должно быть больше 0.
*Пример: 1*

**vmRam**
Объем оперативной памяти в гигабайтах. Должно быть больше 0.
*Пример: 1*


**accessPortList**
Белый список портов для доступа к виртуальной машине извне в формате JSON.
*Пример: ["22","10050]*

**imageVm**
Образ операционной системы для развёртывания.
*Доступные значения: RockyLinux_9-16G-cloudinit, Ubuntu_22-20G, Debian_13-20G*

**userLogin**
Логин пользователя для SSH-доступа.
*По умолчанию: myuser*

**userPublicKey**
Публичный SSH-ключ пользователя в формате OpenSSH.
*Пример: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...*

**needAddZabbixTemplate**
Значение истина\\лож определяющее будет ли добавлен хост в zabbix.
*Пример: true*

### Опциональные параметры:

**accessIpList**
Белый список IP-адресов для доступа к виртуальной машине в формате JSON. Если оставить пустым, вм будет доступена со всех адресов.
*Пример: ["192.168.1.1", "10.0.0.5"]*

**vmDisk**
Размер дополнительного диска в гигабайтах. Должно быть больше 0.
*Пример: 50*

**ipSpaceName**
Внешний IP-адрес. Если не требуется — укажите значение "no-needed".

**cloudInit**
YAML-скрипт для кастомизации системы через cloud-init.

---

## Доступные образы операционных систем

### RockyLinux_9-16G-cloudinit
Базовый образ на основе Rocky Linux 9 (Rocky-9.6-x86_64-minimal) для серверных задач.
- Размер системного диска: 16 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

### Ubuntu_22-20G
Образ на основе Ubuntu Server 22.04 LTS для облачного окружения.
- Размер системного диска: 20 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

### Debian_13-20G
Образ на основе Debian 13 (Trixie) для стабильной серверной работы.
- Размер системного диска: 20 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

---

## Пример использования Cloud-init

```yaml
users:
- name: myuser
sudo: ALL=(ALL) NOPASSWD:ALL
groups: sudo
shell: /bin/bash
ssh-authorized-keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...

packages:
- nginx

runcmd:
- systemctl enable --now nginx
- systemctl restart nginx
```

---

## Результат выполнения

После успешного развёртывания в Личном кабинете появится новая виртуальная машина с заданными характеристиками. SSH-доступ осуществляется с использованием указанных логина и публичного ключа.

---

## Важные примечания

### Особенности работы:
- Для отключения внешнего IP укажите значение "no-needed" в параметре ipSpaceName
- Параметр cloudInit является опциональным

### Ограничения:
- Не рекомендуется использовать продолжительные инструкции в cloud-init (таймаут 5 минут)
- Не поддерживается запись файлов через cloud-init
- Не реализовано создание резервных копий ВМ

---

## Диагностика проблем с cloud-init

### Основной лог-файл:
```bash
/var/log/cloud-init.log
```

### Пакет не устанавливается:
- Проверьте доступность пакета в репозитории
- Убедитесь в правильности написания имени пакета
- Попробуйте установить вручную: `apt install <имя_пакета>` (Debian/Ubuntu) или `dnf install <имя_пакета>` (Rocky Linux)

### Команда не выполняется:
- Проверьте наличие требуемой утилиты в системе
- Убедитесь в правильности синтаксиса команды
- Попробуйте выполнить команду вручную для диагностики"}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/29.json b/artifacts/api-meta/prod/services/29.json new file mode 100644 index 0000000..9887306 --- /dev/null +++ b/artifacts/api-meta/prod/services/29.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svc":{"svcId":29,"svc":"Группа датацентров","svcShort":"vcVdcGroup","code":null,"version":"0.0.2","orchestratorName":"VdcGroup","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VdcGroup/job/create/view/tags/job/0.0.2/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Обеспечение сетевой доступности между датацентрами","man":"# Инструкция по развертыванию Группа виртуальных датацентров (groupvDC) через платформу

## 1. Общая информация

Сервис **Группа виртуальных датацентров (groupvDC)** предназначен для логического объединения нескольких виртуальных датацентров (vDC) в единую группу. Это позволяет растягивать SDN между разными vDC и централизованно управлять сетевой связностью. Управление инфраструктурой осуществляется через Cloud Director.
Сервис применяется в случаях, когда требуется обеспечить единое сетевое пространство для распределенных виртуальных датацентров.

### Доступные операции

**create** — Создание новой группы виртуальных датацентров.
**delete** — Удаление существующей группы vDC.
**add_vdc** — Добавление дополнительного виртуального датацентра в группу.
**remove_vdc** — Удаление ранее добавленного виртуального датацентра из группы.

---

## 2. Параметры развертывания

Параметры операции **create**:

### UUID VDC
Идентификатор виртуального датацентра, который будет являться первичным в группе.
Описание: требуется предварительно создать виртуальный датацентр с помощью услуги `Виртуальный датацентр (vDC)`.

---

## 3. Рекомендованные характеристики

### Тестовое окружение
- Для тестового окружения создавать группу VDC нет необходимости, так как это создаёт дополнительный слой абстракции в Cloud Director

### Промышленное окружение
- Для промышленного окружения, если в тенанте существуют разные VDC, создание groupvdc позволит снизить сетевые издержки (за счёт общей сети)

---

## 4. Выходные параметры

### Параметры groupvdc
Набор параметров, указанных пользователем при создании

---

## 5. Дополнительная информация
- Группа vDC используется для растягивания SDN между несколькими виртуальными датацентрами. Управление всеми сетевыми элементами внутри группы выполняется Cloud Director.
- Удалить первичный vDC (тот, что был указан при операции **create**) невозможно. Для его удаления необходимо удалить всю группу и создать новую.
- Перед добавлением любого vDC в группу он должен быть предварительно развернут через сервис `Виртуальный датацентр (vDC)`.
- Сети создаются не в этой услуге, а в услуге `Сетевой шлюз периметра (Edge)`. В ней необходимо будет выбрать тип `groupvdc`","operations":[{"svcOperationId":193,"operation":"remove_vdc","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VdcGroup/job/remove_vdc/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":195,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VdcGroup/job/delete/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":251,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VdcGroup/job/reconcile/view/tags/job/0.0.2/buildWithParameters","descr":"Необходимо для актуализации состояния группы датацентров.
Операция приводит инстанс услуги к текущей целевой модели, принятой в Личном Кабинете: обновляет информацию из Cloud Director, производит миграцию состояния услуги до последней версии схемы","man":null},{"svcOperationId":191,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VdcGroup/job/create/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"**VDC Группа** нужна для объединения всех VDC в организации в одну логическую группу.
Это позволит, к примеру, создать **общую сеть** для всех VDC в организации

- Для создания группы VDC необходимо указать **инстанс** услуги VDC (`Виртуальный датацентр`)
- **Важный момент** - удалить эту VDC из группы нельзя. Если такая потребность появится, необходимо будет **ПОЛНОСТЬЮ** удалить группу VDC и уже потом создать новую"},{"svcOperationId":192,"operation":"add_vdc","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/vc/job/VdcGroup/job/add_vdc/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"**Не нужно** выбирать UUID VDC, который уже был добавлен в группу"}]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/32.json b/artifacts/api-meta/prod/services/32.json new file mode 100644 index 0000000..c1f756e --- /dev/null +++ b/artifacts/api-meta/prod/services/32.json @@ -0,0 +1 @@ +{"queryDurationMs":59,"svc":{"svcId":32,"svc":"vc_vm_postgresql_std","svcShort":"vmpostgre","code":null,"version":null,"orchestratorName":"VmPostgre","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesProd/job/vm/job/pgsqlStd/job/serviceCreate/job/master/buildWithParameters","isProductionReady":false,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Сервис настройки PostgreSQL для виртуальной машины.
Требует наличия ВМ","man":"Сервис настройки PostgreSQL для виртуальной машины.
Требует наличия ВМ","operations":[{"svcOperationId":32,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesProd/job/vm/job/pgsqlStd/job/serviceCreate/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":33,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesProd/job/vm/job/pgsqlStd/job/serviceDelete/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/50.json b/artifacts/api-meta/prod/services/50.json new file mode 100644 index 0000000..3331a93 --- /dev/null +++ b/artifacts/api-meta/prod/services/50.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svc":{"svcId":50,"svc":"Nextcloud","svcShort":"nextcloud","code":null,"version":"0.0.9","orchestratorName":"Nextcloud","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Nextcloud/job/create/view/tags/job/0.0.9/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":"https://www.svgrepo.com/download/349455/nextcloud.svg","descr":"Платформа совместной работы","man":"Ресурсная платформа: k8s. Автоматизация: helm chart","operations":[{"svcOperationId":17,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Nextcloud/job/delete/view/tags/job/0.0.9/buildWithParameters","descr":"DEV-Ветка удаления Nextcloud","man":"DEV-Ветка удаления Nextcloud"},{"svcOperationId":66,"operation":"restart","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Nextcloud/job/restart/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null},{"svcOperationId":128,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Nextcloud/job/suspend/view/tags/job/0.0.9/buildWithParameters","descr":"Не работает из за проблемы с отсуствием механизма зануления реплики (в вейлюсах нельзя задать количство реплик)","man":null},{"svcOperationId":129,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Nextcloud/job/resume/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null},{"svcOperationId":67,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Nextcloud/job/modify/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null},{"svcOperationId":16,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Nextcloud/job/create/view/tags/job/0.0.9/buildWithParameters","descr":"Ресурсная платформа берётся из PSQL UUID","man":"DEV-Ветка сборки Nextcloud"}]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/81.json b/artifacts/api-meta/prod/services/81.json new file mode 100644 index 0000000..df34549 --- /dev/null +++ b/artifacts/api-meta/prod/services/81.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svc":{"svcId":81,"svc":"Apache Superset","svcShort":"superset","code":null,"version":"0.0.8","orchestratorName":"Superset","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Superset/job/create/view/tags/job/0.0.8/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Сервер отчетов","man":"Apache Superset как сервис.
Ресурсная платформа: k8s.
Автоматизация: k8s operator.
Авторизация: 2FA keycloak (для доменного логина @mgmt.nubes.ru)","operations":[{"svcOperationId":13,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Superset/job/delete/view/tags/job/0.0.8/buildWithParameters","descr":"DEV-Ветка удаления Superset","man":"DEV-Ветка удаления Superset"},{"svcOperationId":12,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Superset/job/create/view/tags/job/0.0.8/buildWithParameters","descr":"DEV-Ветка сборки Superset","man":"DEV-Ветка сборки Superset"}]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/82.json b/artifacts/api-meta/prod/services/82.json new file mode 100644 index 0000000..de3f41a --- /dev/null +++ b/artifacts/api-meta/prod/services/82.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svc":{"svcId":82,"svc":"Container Registry","svcShort":"harbor","code":null,"version":"0.0.9","orchestratorName":"Registry","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Registry/job/create/view/tags/job/0.0.9/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":"https://goharbor.io/img/logos/harbor-icon-color.png","descr":"Реестр для хранения образов контейнеров","man":"Расширенный реестр для управления Docker-образами с enterprise-функциями безопасности, репликации и контроля доступа.
Container Registry позволяет хранить, развертывать и управлять Docker-образами контейнеров в инфраструктуре NGcloud.
Сервис можно использовать в процессе разработки контейнеров. Например, вы можете настроить систему автоматизации на работу с реестром в Container Registry в рамках процесса непрерывной интеграции. Контейнеры идеально подходят для запуска небольших, независимых и легко изменяемых сервисов.
Чтобы начать работу, создайте реестр и загрузите в него Docker-образ
Авторизация: keycloak","operations":[{"svcOperationId":14,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Registry/job/create/view/tags/job/0.0.9/buildWithParameters","descr":"DEV-Ветка сборки Harbor","man":"DEV-Ветка сборки Harbor"},{"svcOperationId":15,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Registry/job/delete/view/tags/job/0.0.9/buildWithParameters","descr":"DEV-Ветка удаления Harbor","man":"DEV-Ветка удаления Harbor"}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/88.json b/artifacts/api-meta/prod/services/88.json new file mode 100644 index 0000000..b7a4ad1 --- /dev/null +++ b/artifacts/api-meta/prod/services/88.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svc":{"svcId":88,"svc":"k8sZitiController","svcShort":"k8sZitiController","code":null,"version":"0.0.1","orchestratorName":"ZitiController","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/ZitiController/job/create/view/tags/job/0.0.1/buildWithParameters","isProductionReady":false,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Контроллер управления Client to service & service to service Zero trust network
","man":null,"operations":[{"svcOperationId":99,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/ZitiController/job/create/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":105,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/ZitiController/job/delete/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/89.json b/artifacts/api-meta/prod/services/89.json new file mode 100644 index 0000000..ee1140f --- /dev/null +++ b/artifacts/api-meta/prod/services/89.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svc":{"svcId":89,"svc":"Flask","svcShort":"flask","code":"paas.flsk.0","version":"0.0.4","orchestratorName":"Flask","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Flask/job/create/view/tags/job/0.0.4/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":null,"man":null,"operations":[{"svcOperationId":89,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Flask/job/delete/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":88,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Flask/job/create/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":125,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Flask/job/suspend/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":146,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Flask/job/modify/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":145,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Flask/job/resume/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/90.json b/artifacts/api-meta/prod/services/90.json new file mode 100644 index 0000000..c29eb67 --- /dev/null +++ b/artifacts/api-meta/prod/services/90.json @@ -0,0 +1 @@ +{"queryDurationMs":70,"svc":{"svcId":90,"svc":"PostgreSQL","svcShort":"postgres","code":"paas.pg.0","version":"0.0.10","orchestratorName":"Pgsql","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgsql/job/create/view/tags/job/0.0.10/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":"https://upload.wikimedia.org/wikipedia/commons/2/29/Postgresql_elephant.svg","descr":"Управляемая база данных PostgreSQL","man":"PostgreSQL кластер. Ресурсная платформа: k8s. Автоматизация: k8s operator.
Автоматическое резервное копирование, ручное восстановление.","operations":[{"svcOperationId":47,"operation":"recovery","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgsql/job/recovery/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null},{"svcOperationId":19,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgsql/job/create/view/tags/job/0.0.10/buildWithParameters","descr":"описание","man":"руководство"},{"svcOperationId":114,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgsql/job/resume/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null},{"svcOperationId":20,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgsql/job/delete/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null},{"svcOperationId":48,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgsql/job/modify/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null},{"svcOperationId":115,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgsql/job/suspend/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null},{"svcOperationId":54,"operation":"restart","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgsql/job/restart/view/tags/job/0.0.10/buildWithParameters","descr":"ВНИМАНИЕ - Редеплой предполагает УДАЛЕНИЕ подов.
Может быть полная поломка. Крайне осторожно запускать при работе.
Нет возможности нормально мигрировать на другую платформу средствами Redeploy, так как есть привязка к S3.
Поэтому если нужно смигрировать на другой кластер Kubernetes - использовать необходимо Restore","man":"ВНИМАНИЕ - Рестарт предполагает УДАЛЕНИЕ подов.
Может быть полная поломка. Крайне осторожно запускать при работе"}]},"runDurationMs":71} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/91.json b/artifacts/api-meta/prod/services/91.json new file mode 100644 index 0000000..dc68f77 --- /dev/null +++ b/artifacts/api-meta/prod/services/91.json @@ -0,0 +1 @@ +{"queryDurationMs":60,"svc":{"svcId":91,"svc":"Redis","svcShort":"redis","code":null,"version":"0.0.10","orchestratorName":"Redis","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Redis/job/create/view/tags/job/0.0.10/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":"https://www.svgrepo.com/download/303460/redis-logo.svg","descr":"Управляемая база данных Redis","man":"Redis кластер. Под кеши.
Ресурсная платформа: k8s.
Автоматизация: k8s operator
port 6379","operations":[{"svcOperationId":21,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Redis/job/create/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null},{"svcOperationId":22,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Redis/job/delete/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null}]},"runDurationMs":60} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/92.json b/artifacts/api-meta/prod/services/92.json new file mode 100644 index 0000000..1e26272 --- /dev/null +++ b/artifacts/api-meta/prod/services/92.json @@ -0,0 +1 @@ +{"queryDurationMs":60,"svc":{"svcId":92,"svc":"MongoDB","svcShort":"mongodb","code":"paas.mngo.0","version":"0.0.1","orchestratorName":"MongoDB","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/MongoDB/job/create/view/tags/job/0.0.1/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Управляемая база данных MongoDB","man":"# Инструкция по развертыванию MongoDB через платформу

## 1. Общая информация

MongoDB — документоориентированная распределённая база данных, обеспечивающая высокую доступность, горизонтальное масштабирование и гибкую модель хранения.

### Доступные операции с кластером

* **create** — создание кластера
* **delete** — удаление кластера
* **suspend** — остановка кластера
* **resume** — запуск кластера

### Доступные операции с пользователями

* **create_user** — создание пользователя
* **modify_user** — модификация пользователя
* **delete_user** — удаление пользователя

---

## 2. Параметры развертывания кластера

Эти параметры необходимо указать при создании кластера.

### Платформа для развертывания

Среда, в которой будет развернут кластер. Выбирается из предложенного списка.

### Количество узлов

Оптимально выбирать нечётное количество узлов в кластере MongoDB, так как это обеспечивает корректный процесс выбора ведущего узла и сохраняет работоспособность кластера даже при отказе одной из нод.

### Квота памяти пода (MB)

Объём памяти для одного пода в мегабайтах.
Пример: `2048`

### Квота CPU пода (mCPU)

CPU-квота для пода в миликорах (1000 mCPU = 1 vCPU).
Пример: `1000`

### Размер диска для базы данных (GB)

Объём диска для хранения данных в гигабайтах.
Пример: `20`

### Выделение внешнего IP для доступа к master

Флаг, определяющий необходимость выделения внешнего IP.
Допустимые значения: `true` или `false`

### Имя ipSpace для публикации внешнего IP

Указывается только если включено выделение внешнего IP.
Пример: `internet-no-antiddos-v1`

---

## 3. Параметры создания пользователя

### Имя пользователя

Указывается имя пользователя (любой регистр).
Пример: `readApp`

### Имя базы данных

Название базы, в которой будет создан пользователь.
Если база отсутствует, она будет создана автоматически.
Пример: `Apps_9392`

### Имя роли

* **read** — доступ только на чтение
* **readWrite** — чтение и изменение данных
* **dbOwner** — полный контроль над базой данных

---

## 4. Параметры модификации пользователя

### Имя пользователя

Необходимо выбрать существующего пользователя.
Если список пуст, требуется предварительно создать пользователя.

### Имя базы данных

База данных, к которой относится пользователь.
Если база отсутствует, она будет создана автоматически.
Пример: `Apps_9392`

### Имя роли

* **read**
* **readWrite**
* **dbOwner**

---

## 5. Параметры удаления пользователя

### Имя пользователя

Выберите пользователя из списка для удаления.

---

## 6. Выходные параметры

После успешного развертывания кластера платформа возвращает ключевые параметры.

### internalConnect

Внутренний эндпоинт для подключения к кластеру из сервисов, работающих в той же сети.
Используется для внутренних интеграций и системных сервисов.

### externalConnect

Внешний FQDN для подключения к кластеру извне.
Порт подключения — **27017**.

---

## 7. Пример подключения

Перед подключением необходимо установить **mongosh**.

Команда подключения к базе данных:

```
mongosh "mongodb://<username>:<password>@<endpoint_db>:27017/<dbName>"
```

Где:

* `<username>` — имя пользователя
* `<password>` — пароль
* `<endpoint_db>` — internalConnect или externalConnect
* `<dbName>` — имя базы данных

## 8. Дополнительная информация

Сейчас соединение с базой работает без шифрования, и доступ к кластеру осуществляется только по логину и паролю.","operations":[{"svcOperationId":194,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/MongoDB/job/suspend/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":200,"operation":"modify_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/MongoDB/job/modify_user/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":198,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/MongoDB/job/create_user/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":199,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/MongoDB/job/delete_user/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":190,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/MongoDB/job/delete/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":196,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/MongoDB/job/resume/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":37,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/MongoDB/job/create/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null}]},"runDurationMs":61} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/93.json b/artifacts/api-meta/prod/services/93.json new file mode 100644 index 0000000..cbaca87 --- /dev/null +++ b/artifacts/api-meta/prod/services/93.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svc":{"svcId":93,"svc":"RabbitMQ","svcShort":"rabbitmq","code":null,"version":"1.0.0","orchestratorName":"Rabbitmq","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Rabbitmq/job/create/view/tags/job/1.0.0/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":"https://www.svgrepo.com/download/354250/rabbitmq-icon.svg","descr":"Сервер очередей","man":"# Инструкция по развертыванию RabbitMQ через платформу

---
## 1. Общая информация
RabbitMQ — это брокер сообщений с открытым исходным кодом, который обеспечивает надёжную доставку сообщений между приложениями.
Позволяет надёжно передавать сообщения между сервисами и системами, интегрироваться с внешними решениями и использовать как внутренние, так и защищённые TLS-подключения. Развёртывание полностью автоматизировано платформой.

## Доступные операции
- **create** — Создание кластера
- **modify** — Изменение параметров кластера
- **delete** — Удаление кластера
- **suspend** — Остановка кластера
- **resume** — Запуск кластера


---
## 2. Параметры развертывания кластера
Ниже перечислены параметры, которые необходимо указать при создании ресурса RabbitMQ:

* **Платформа для развертывания:**
Платформа для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.

* **Количество узлов в сети:**
Количество реплик в кластере RabbitMQ. При значении больше 1 создаётся кластер с репликацией для обеспечения высокой доступности.
Пример: `1` (single node) или `3` (кластер с репликацией)

* **Квота (megabyte) памяти пода:**
Квота памяти пода в мегабайтах. Пример: `2048`

* **Квота (millicore) ядра пода:**
Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `1000`

* **Размер (gigabyte) диска для базы данных:**
Размер диска для хранения данных RabbitMQ в гигабайтах. Пример: `50`

* **Выделяет внешний IP для доступа к master:**
Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-узлу. При включении создаётся Service типа LoadBalancer и настраивается VIP на порту 5672.
Пример: `true` или `false`

* **Имя ipSpace для публикации внешнего IP master:**
Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`


---
## 3. Модификация кластера
Операция **modify** позволяет изменить параметры существующего кластера RabbitMQ.

**Изменяемые параметры:**
* **Квота (megabyte) памяти пода** — можно увеличить или уменьшить
* **Квота (millicore) ядра пода** — можно увеличить или уменьшить
* **Размер (gigabyte) диска для базы данных** — можно только увеличить (уменьшение не поддерживается)
* **Количество узлов в сети** — можно только увеличить (уменьшение не поддерживается)
* **Выделяет внешний IP для доступа к master** — можно включить или выключить
* **Имя ipSpace для публикации внешнего IP master** — можно изменить при включенном внешнем IP

**Ограничения:**
* Уменьшение размера диска не поддерживается
* Уменьшение количества реплик не поддерживается

---
## 4. Выходные параметры
После успешного развертывания ресурса RabbitMQ платформа возвращает ряд параметров в разделе "Поля состояния (сгенерированные значения)":

**clusterDomain**
Домен кластера Kubernetes, в котором развернут RabbitMQ.
Пример: `cluster.local`

**inernalConnect**
Внутренние эндпоинты для подключения к кластеру RabbitMQ из других сервисов, развернутых внутри той же сети.
Содержит:
* **master** — FQDN для подключения к кластеру. Пример: `rabbitmqk8s.{namespace}.svc.{clusterDomain}`

**externalConnect**
Внешние эндпоинты для подключения к кластеру RabbitMQ извне.
Содержит объекты с полями:
* **admin** — доступ к веб-интерфейсу управления:
* `fqdn` — полное доменное имя для веб-интерфейса. Пример: `admin.{namespace}.{domain}`
* `ip` — IP-адрес
* **master** — доступ к AMQP протоколу (если включен внешний IP):
* `fqdn` — полное доменное имя для AMQP. Пример: `write.{namespace}.{domain}`
* `ip` — IP-адрес

**monitoring**
Информация о дашбордах мониторинга:
* **allDashboards** — URL для доступа ко всем дашбордам Grafana

Для подключения используются следующие порты:

* **5672** — AMQP протокол (внутренний и внешний доступ, если включен внешний IP)
* **15672** — веб-интерфейс управления (доступен через Ingress по HTTPS)

**Учётные данные**
Данные для подключения к RabbitMQ доступны в разделе "Учётные данные":
* **adminUser** — имя пользователя администратора
* **adminPass** — пароль администратора


---
## 5. Примеры подключения через консоль (rabbitmqadmin)

### Работа с очередями через rabbitmqadmin

Для работы с RabbitMQ через консоль используется утилита `rabbitmqadmin`. Установите её или используйте образ с предустановленной утилитой.

Задайте переменные окружения с учётными данными:

```bash
export RABBITMQ_USERNAME=<adminUser>
export RABBITMQ_PASSWORD=<adminPass>
export RABBIT_HOST=<host>
```

Где:
* `<adminUser>` и `<adminPass>` — учётные данные из раздела "Учётные данные"
* `<host>` — адрес для подключения:
* Для внешнего подключения: `externalConnect.admin.fqdn` или `externalConnect.master.fqdn`

**Создание очереди:**

```bash
rabbitmqadmin \\
-H "$RABBIT_HOST" -P 15672 \\
-u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \\
declare queue name=healthcheck durable=false
```

**Листинг очередей:**

```bash
rabbitmqadmin \\
-H "$RABBIT_HOST" -P 15672 \\
-u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \\
list queues
```

**Отправка сообщения:**

```bash
rabbitmqadmin \\
-H "$RABBIT_HOST" -P 15672 \\
-u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \\
publish exchange=amq.default routing_key=healthcheck payload="ping-$(date +%s)"
```

**Чтение сообщения:**

```bash
rabbitmqadmin \\
-H "$RABBIT_HOST" -P 15672 \\
-u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \\
get queue=healthcheck ackmode=ack_requeue_false
```

---
## 6. Дополнительная информация
Для подключения к кластеру RabbitMQ используйте полученные эндпоинты из раздела "Поля состояния (сгенерированные значения)" и учётные данные из раздела "Учётные данные".

Веб-интерфейс управления доступен по адресу, указанному в параметре `externalConnect.admin.fqdn` через HTTPS.

Для внутреннего подключения используйте адрес из `inernalConnect.master` на порту 5672.

---","operations":[{"svcOperationId":106,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Rabbitmq/job/modify/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null},{"svcOperationId":39,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Rabbitmq/job/delete/view/tags/job/1.0.0/buildWithParameters","descr":"Для удаления нужно подождать 15 мин или зайти в состояние suspend и поправить время на 15 мин назад","man":null},{"svcOperationId":117,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Rabbitmq/job/resume/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null},{"svcOperationId":116,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Rabbitmq/job/suspend/view/tags/job/1.0.0/buildWithParameters","descr":"Остановка сервиса путем применения манифеста с нолевой репликой","man":"Пока не работает из за того что RabbitmqCluster нельзя занулить"},{"svcOperationId":38,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Rabbitmq/job/create/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null}]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/94.json b/artifacts/api-meta/prod/services/94.json new file mode 100644 index 0000000..a6cbecc --- /dev/null +++ b/artifacts/api-meta/prod/services/94.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svc":{"svcId":94,"svc":"Lucee","svcShort":"lucee","code":null,"version":"0.0.15","orchestratorName":"Lucee","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Lucee/job/create/view/tags/job/0.0.15/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Cервер приложений","man":null,"operations":[{"svcOperationId":55,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Lucee/job/modify/view/tags/job/0.0.15/buildWithParameters","descr":"Если CFS оставить пустым, то при запуске джобы берётся параметр из instanceData","man":"Если CFS оставить пустым, то при запуске джобы берётся параметр из instanceData"},{"svcOperationId":50,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Lucee/job/delete/view/tags/job/0.0.15/buildWithParameters","descr":null,"man":null},{"svcOperationId":96,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Lucee/job/suspend/view/tags/job/0.0.15/buildWithParameters","descr":null,"man":null},{"svcOperationId":163,"operation":"restart","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Lucee/job/restart/view/tags/job/0.0.15/buildWithParameters","descr":null,"man":null},{"svcOperationId":53,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Lucee/job/redeploy/view/tags/job/0.0.15/buildWithParameters","descr":null,"man":null},{"svcOperationId":49,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Lucee/job/create/view/tags/job/0.0.15/buildWithParameters","descr":null,"man":null},{"svcOperationId":95,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Lucee/job/resume/view/tags/job/0.0.15/buildWithParameters","descr":null,"man":null}]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/95.json b/artifacts/api-meta/prod/services/95.json new file mode 100644 index 0000000..451ca02 --- /dev/null +++ b/artifacts/api-meta/prod/services/95.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svc":{"svcId":95,"svc":"NodeJS","svcShort":"nodejs","code":null,"version":"0.0.10","orchestratorName":"Node","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Node/job/create/view/tags/job/0.0.10/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":"https://icon.icepanel.io/Technology/svg/Node.js.svg","descr":"Cервер приложений","man":"Развертывает контейнер в k8s кластере с node:16, который можно использовать для запуска своих приложений.
Приложение должно быть доступно по ссылки в git репозитории, которая является входным параметром.","operations":[{"svcOperationId":59,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Node/job/modify/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null},{"svcOperationId":121,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Node/job/resume/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null},{"svcOperationId":60,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Node/job/redeploy/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null},{"svcOperationId":58,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Node/job/create/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null},{"svcOperationId":120,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Node/job/suspend/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null},{"svcOperationId":61,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Node/job/delete/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/96.json b/artifacts/api-meta/prod/services/96.json new file mode 100644 index 0000000..884365a --- /dev/null +++ b/artifacts/api-meta/prod/services/96.json @@ -0,0 +1 @@ +{"queryDurationMs":67,"svc":{"svcId":96,"svc":"pgAdmin","svcShort":"pgadmin","code":null,"version":"0.0.7","orchestratorName":"Pgadmin","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgadmin/job/create/view/tags/job/0.0.7/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Административный интерфейс для PostgreSQL","man":"Инструмент с графическим интерфейсом для управления базами данных PostgreSQL","operations":[{"svcOperationId":63,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgadmin/job/delete/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":122,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgadmin/job/suspend/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":65,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgadmin/job/redeploy/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":62,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgadmin/job/create/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":123,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgadmin/job/resume/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":64,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Pgadmin/job/modify/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null}]},"runDurationMs":67} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/97.json b/artifacts/api-meta/prod/services/97.json new file mode 100644 index 0000000..00a2da5 --- /dev/null +++ b/artifacts/api-meta/prod/services/97.json @@ -0,0 +1 @@ +{"queryDurationMs":69,"svc":{"svcId":97,"svc":"NodeRed","svcShort":"nodered","code":null,"version":"0.0.1","orchestratorName":"NodeRed","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/NodeRed/job/create/view/tags/job/0.0.1/buildWithParameters","isProductionReady":false,"resourceRealmTypeId":3,"iconSrc":"https://nodered.org/about/resources/media/node-red-icon.svg","descr":"Low-code платформа для IoT","man":null,"operations":[{"svcOperationId":72,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/NodeRed/job/create/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":73,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/NodeRed/job/delete/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null}]},"runDurationMs":70} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/98.json b/artifacts/api-meta/prod/services/98.json new file mode 100644 index 0000000..81292f6 --- /dev/null +++ b/artifacts/api-meta/prod/services/98.json @@ -0,0 +1 @@ +{"queryDurationMs":60,"svc":{"svcId":98,"svc":"Простой HTTP контейнер","svcShort":"http","code":null,"version":"0.0.8","orchestratorName":"SimpleHttpContainer","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SimpleHttpContainer/job/create/view/tags/job/0.0.8/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":null,"man":null,"operations":[{"svcOperationId":131,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SimpleHttpContainer/job/suspend/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null},{"svcOperationId":78,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SimpleHttpContainer/job/delete/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null},{"svcOperationId":77,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SimpleHttpContainer/job/create/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null},{"svcOperationId":81,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SimpleHttpContainer/job/modify/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null},{"svcOperationId":130,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SimpleHttpContainer/job/resume/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null},{"svcOperationId":79,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/SimpleHttpContainer/job/redeploy/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null}]},"runDurationMs":61} \ No newline at end of file diff --git a/artifacts/api-meta/prod/services/99.json b/artifacts/api-meta/prod/services/99.json new file mode 100644 index 0000000..97bf002 --- /dev/null +++ b/artifacts/api-meta/prod/services/99.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svc":{"svcId":99,"svc":"Gitea","svcShort":"gitea","code":null,"version":"0.0.7","orchestratorName":"Gitea","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Gitea/job/create/view/tags/job/0.0.7/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":"https://www.svgrepo.com/download/349372/gitea.svg","descr":"Сервис контроля версий","man":"Развертывает сервис контроля версий Gitea
Зависит от сервиса postgresql который должен быть развернут заранее.","operations":[{"svcOperationId":83,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Gitea/job/delete/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":82,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Gitea/job/create/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":91,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Gitea/job/modify/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":126,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Gitea/job/suspend/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":127,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesprod/job/k8s/job/Gitea/job/resume/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null}]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/test/STATUS.txt b/artifacts/api-meta/test/STATUS.txt new file mode 100644 index 0000000..e7afb5c --- /dev/null +++ b/artifacts/api-meta/test/STATUS.txt @@ -0,0 +1 @@ +done 2026-02-18T11:00:56Z diff --git a/artifacts/api-meta/test/STATUS_SUMMARY.txt b/artifacts/api-meta/test/STATUS_SUMMARY.txt new file mode 100644 index 0000000..75581ba --- /dev/null +++ b/artifacts/api-meta/test/STATUS_SUMMARY.txt @@ -0,0 +1 @@ +done 2026-02-18T16:42:28Z diff --git a/artifacts/api-meta/test/all_params.jsonl b/artifacts/api-meta/test/all_params.jsonl new file mode 100644 index 0000000..f6f47f3 --- /dev/null +++ b/artifacts/api-meta/test/all_params.jsonl @@ -0,0 +1,175 @@ +{"svcId":1,"svc":"Болванка","svcShort":"dummy","code":"null","operation":"delete","svcOperationId":71,"params":[],"paramCount":0} +{"svcId":1,"svc":"Болванка","svcShort":"dummy","code":"null","operation":"modify","svcOperationId":92,"params":[{"svcOperationCfsParamId":287,"svcOperationCfsParam":"durationMs","label":null,"dataType":"integer >= 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"перед завершением подождать (sleep) столько миллисекунд","man":"перед завершением подождать (sleep) столько миллисекунд","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":288,"svcOperationCfsParam":"failAtStart","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"если true, завершить джоб, ничего не записывая в cmdb","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":289,"svcOperationCfsParam":"failInProgress","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"если true, корректно начать выполнение джоба, но в процессе завершить аварийно, ничего не записывая в cmdb","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":290,"svcOperationCfsParam":"whereFail","label":null,"dataType":"integer > 0","valueList":["1","2","3"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write","man":"принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":291,"svcOperationCfsParam":"bodymessage","label":null,"dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Дата, уходящая в Vault","man":"Дата, уходящая в Vault","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":373,"svcOperationCfsParam":"mapExample","label":"mapExample","dataType":"map","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"{}","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":374,"svcOperationCfsParam":"jsonExample","label":"jsonExample","dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":7} +{"svcId":1,"svc":"Болванка","svcShort":"dummy","code":"null","operation":"suspend","svcOperationId":93,"params":[],"paramCount":0} +{"svcId":1,"svc":"Болванка","svcShort":"dummy","code":"null","operation":"resume","svcOperationId":94,"params":[],"paramCount":0} +{"svcId":1,"svc":"Болванка","svcShort":"dummy","code":"null","operation":"create","svcOperationId":18,"params":[{"svcOperationCfsParamId":242,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование ресурсной платформы для подключения","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":198,"svcOperationCfsParam":"durationMs","label":null,"dataType":"integer >= 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"перед завершением подождать (sleep) столько миллисекунд","man":"перед завершением подождать (sleep) столько миллисекунд","sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":199,"svcOperationCfsParam":"failAtStart","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"если true, завершить джоб, ничего не записывая в cmdb","man":"**Операция не будет завершена**
Она будет в постоянном статусе PENDING, однако в Jenkins Job завершится с ошибкой","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":200,"svcOperationCfsParam":"failInProgress","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"если true, корректно начать выполнение джоба, но в процессе завершить аварийно, ничего не записывая в cmdb","man":"если true, корректно начать выполнение джоба, но в процессе завершить аварийно, ничего не записывая в cmdb","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":201,"svcOperationCfsParam":"whereFail","label":null,"dataType":"integer > 0","valueList":["1","2","3"],"refSvcId":null,"isRequired":false,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write","man":"принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":286,"svcOperationCfsParam":"bodymessage","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Дата, уходящая в Vault","man":"Дата, уходящая в Vault","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":321,"svcOperationCfsParam":"mapExample","label":null,"dataType":"map","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":322,"svcOperationCfsParam":"jsonExample","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Для тестирования интерфейса","man":"Для тестирования интерфейса. Сюда можно писать корректный json","sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":396,"svcOperationCfsParam":"nestedRefExample","label":null,"dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":447,"svcOperationCfsParam":"yamlExample","label":"Пример yaml","dataType":"yaml","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":647,"svcOperationCfsParam":"mapFixed","label":null,"dataType":"map-fixed","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Новый тип поля","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":654,"svcOperationCfsParam":"arrayMapFixedExample","label":null,"dataType":"array-map-fixed","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Array of map-fixed","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":12} +{"svcId":1,"svc":"Болванка","svcShort":"dummy","code":"null","operation":"redeploy","svcOperationId":240,"params":[],"paramCount":0} +{"svcId":110,"svc":"DNS зона","svcShort":"dnszone","code":"null","operation":"delete","svcOperationId":44,"params":[],"paramCount":0} +{"svcId":110,"svc":"DNS зона","svcShort":"dnszone","code":"null","operation":"create","svcOperationId":43,"params":[{"svcOperationCfsParamId":66,"svcOperationCfsParam":"zoneEmail","label":"Контактный e-mail","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Контактный e-mail","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":67,"svcOperationCfsParam":"zoneName","label":"Имя зоны","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^([a-z0-9-]+\\.)+[a-z0-9-]+$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя зоны","man":"Имя зоны","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":68,"svcOperationCfsParam":"zoneKind","label":"Тип зоны","dataType":"string","valueList":["NATIVE","SLAVE"],"refSvcId":null,"isRequired":true,"defaultValue":"NATIVE","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Тип зоны","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":69,"svcOperationCfsParam":"zoneMastersForSlave","label":"Мастер-сервера (kind: SLAVE)","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Использовать если выбран тип SLAVE. IP адреса в формате через пробел для настройки Master-серверов","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":70,"svcOperationCfsParam":"zoneTimeToRefresh","label":"Time To Refresh","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"86400","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Время ожидания ответа вторичного DNS перед запросом SOA-записи с первичных серверов","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":71,"svcOperationCfsParam":"zoneTimeToRetry","label":"Time To Retry","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"7200","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Время в течение которого сервер повторно попробует синхронизировать информацию с первичных DNS-серверов","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":72,"svcOperationCfsParam":"zoneTimeToExpire","label":"Time To Expire","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"3600000","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Время в течение которого вторичный DNS будет пытаться завершить синхронизацию зоны с первичным","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":73,"svcOperationCfsParam":"zoneTimeToLive","label":"Time To Live","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"86400","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Время, в течение которого информация будет кешироваться другими DNS-серверами","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":284,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":9} +{"svcId":111,"svc":"DNS запись","svcShort":"dnsrecord","code":"null","operation":"create","svcOperationId":45,"params":[{"svcOperationCfsParamId":75,"svcOperationCfsParam":"zoneUid","label":"UUID Зоны","dataType":"uuid","valueList":null,"refSvcId":110,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID экземпляра услуги DNS-зоны","man":"UUID экземпляра услуги DNS-зоны","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":76,"svcOperationCfsParam":"recordType","label":"Тип DNS-записи","dataType":"string","valueList":["A","AAAA","CNAME","MX","PTR","SOA","SRV","TXT","LUA","NS","SSHFP"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Тип DNS-записи","man":"Тип DNS-записи","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":77,"svcOperationCfsParam":"recordName","label":"Имя записи","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":"parent","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя записи. Имя зоны в конце проставляется автоматически","man":"Имя записи. Имя зоны в конце проставляется автоматически","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":78,"svcOperationCfsParam":"recordInput","label":"Значение записи","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Значение. Необходима валидация, в зависимости от типа записи. Должно быть заменено на UUID-внешнийIP","man":"Значение. Необходима валидация, в зависимости от типа записи. Должно быть заменено на UUID-внешнийIP","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":450,"svcOperationCfsParam":"recordTTL","label":"TTL записи (в секундах)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"3600","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":604800,"minvalue":30,"descr":"Time-to-Leave записи. Раз в какое время запись будет обновлена","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":5} +{"svcId":111,"svc":"DNS запись","svcShort":"dnsrecord","code":"null","operation":"modify","svcOperationId":90,"params":[{"svcOperationCfsParamId":256,"svcOperationCfsParam":"recordInput","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Запись. Необходима валидация, в зависимости от типа записи. Должно быть заменено на UUID-внешнийIP","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":1} +{"svcId":111,"svc":"DNS запись","svcShort":"dnsrecord","code":"null","operation":"delete","svcOperationId":46,"params":[],"paramCount":0} +{"svcId":112,"svc":"Тенант в Grafana","svcShort":"tenant","code":"null","operation":"modify","svcOperationId":87,"params":[],"paramCount":0} +{"svcId":112,"svc":"Тенант в Grafana","svcShort":"tenant","code":"null","operation":"create","svcOperationId":84,"params":[{"svcOperationCfsParamId":239,"svcOperationCfsParam":"grafanaOrgName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^WZ[\\d]+$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"WZ-Код клиента","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":240,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":2} +{"svcId":112,"svc":"Тенант в Grafana","svcShort":"tenant","code":"null","operation":"delete","svcOperationId":86,"params":[],"paramCount":0} +{"svcId":113,"svc":"Быстрый старт","svcShort":"vcComplex","code":"null","operation":"create","svcOperationId":107,"params":[{"svcOperationCfsParamId":332,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование ресурсной платформы","sort":1,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":334,"svcOperationCfsParam":"vappName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя vApp","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":401,"svcOperationCfsParam":"cpuGuaranteed","label":null,"dataType":"integer > 0","valueList":["20","50","80"],"refSvcId":null,"isRequired":true,"defaultValue":"20","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":566,"svcOperationCfsParam":"cpuAllocated","label":"Сколько аллоцировать на VDC ЯДЕР","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1,"descr":"шт","man":null,"sort":21,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":402,"svcOperationCfsParam":"memGuaranteed","label":null,"dataType":"integer > 0","valueList":["20","50","80"],"refSvcId":null,"isRequired":true,"defaultValue":"20","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":567,"svcOperationCfsParam":"memAllocated","label":"Сколько аллоцировать на VDC ОЗУ","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1,"descr":"gb","man":null,"sort":31,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":404,"svcOperationCfsParam":"needExternalAddressSNAT","label":"Выделить VIP для SNAT","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP на Edge. Используется для SNAT всего трафика","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":405,"svcOperationCfsParam":"needEnableAVI","label":"Включить ALB","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает AVI в Cloud Director","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":403,"svcOperationCfsParam":"segroupName","label":"Наименование segroup","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"SEGROUP-SANDBOX-CL1-SHARED-01","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Наименование segroup, в котором будут выделяться пулы на AVI","man":null,"sort":100,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":359,"svcOperationCfsParam":"virtualServicesCount","label":"Кол-во VS на AVI","dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4,"minvalue":1,"descr":"Кол-во виртуальных сервисов, которые выделяются на AVI. Во избежании коллапса пока выделяется до 4","man":null,"sort":110,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":400,"svcOperationCfsParam":"vdcNetworkPool","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"nsxt-sandbox-geneve-np","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":120,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":360,"svcOperationCfsParam":"ipSpaceName","label":"ip Space для VIP","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"internet-ipv4-v1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ip Space для внешнего IP. Целесообразнее брать самый дешёвый, так как это vip для исходящего трафика. Необходимо задавать если включен needExternalAddressSNAT","man":null,"sort":130,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":568,"svcOperationCfsParam":"vIPCount","label":"Кол-во зарезервированных внешних Ip","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":20,"minvalue":0,"descr":"ш","man":null,"sort":131,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":358,"svcOperationCfsParam":"vdcProviderGateway","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"sandbox-v1cl1-pvdc","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Взять из свойств ресурсной платформы.
Путь .vcd.providerVdc - взять KEY

providerGateway Cloud Director. Влияет ресурсы будут предоставлены. Является полем (List<String>) в свойствах рес. платформы ЛК, но сам параметр передаётся только как один String","man":null,"sort":200,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":399,"svcOperationCfsParam":"storageConfig","label":"Конфигурация Storage","dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[{\"name\": \"\", \"size\": 1024}]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Описывается как массив объектов, где описывается имя политики и её размер","man":null,"sort":210,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":15} +{"svcId":115,"svc":"Mariadb","svcShort":"mariadb","code":"paas.mysql.0","operation":"modify","svcOperationId":142,"params":[{"svcOperationCfsParamId":436,"svcOperationCfsParam":"resourceCPU","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":437,"svcOperationCfsParam":"resourceMemory","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":438,"svcOperationCfsParam":"resourceInstances","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":439,"svcOperationCfsParam":"resourceDisk","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":440,"svcOperationCfsParam":"needExternalAddressMaster","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":441,"svcOperationCfsParam":"ipSpaceNameMaster","label":null,"dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":442,"svcOperationCfsParam":"ext_BACKUP_SCHEDULE","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":443,"svcOperationCfsParam":"autoScale","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":444,"svcOperationCfsParam":"autoScalePercentage","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":445,"svcOperationCfsParam":"autoScaleTechWindow","label":null,"dataType":"integer >= 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":446,"svcOperationCfsParam":"autoScaleQuotaGb","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":11} +{"svcId":115,"svc":"Mariadb","svcShort":"mariadb","code":"paas.mysql.0","operation":"suspend","svcOperationId":140,"params":[],"paramCount":0} +{"svcId":115,"svc":"Mariadb","svcShort":"mariadb","code":"paas.mysql.0","operation":"resume","svcOperationId":141,"params":[],"paramCount":0} +{"svcId":115,"svc":"Mariadb","svcShort":"mariadb","code":"paas.mysql.0","operation":"delete","svcOperationId":139,"params":[{"svcOperationCfsParamId":456,"svcOperationCfsParam":"deleteS3Bucket","label":"Также удалить технический S3 Bucket с бэкапами?","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Также удалить технический S3 Bucket с бэкапами?","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":1} +{"svcId":115,"svc":"Mariadb","svcShort":"mariadb","code":"paas.mysql.0","operation":"create","svcOperationId":138,"params":[{"svcOperationCfsParamId":422,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":459,"svcOperationCfsParam":"s3Uid","label":"Услуга S3 для резервных копий","dataType":"uuid","valueList":null,"refSvcId":12,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Экземпляр (учетная запись) S3 для резервного копирования. Резервное копирование обязательно","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":424,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":500,"descr":"Квота ядра пода (milicores)","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":425,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1024","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":1024,"descr":"Квота памяти пода (MBytes)","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":426,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":427,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":428,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделение белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний (белый) IP для доступа к master","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":429,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации VIP master","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":430,"svcOperationCfsParam":"ext_BACKUP_SCHEDULE","label":"Расписание резервного копирования","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"0 * * * *","defaultCompute":null,"func":null,"regex":"^(\\*|(\\d+|\\*\\/\\d+|\\d+(,\\d+)*))\\s\\*\\s\\*\\s\\*\\s\\*$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Не обязательный. Время запуска бекапа","man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":431,"svcOperationCfsParam":"appVersion","label":"Версия MySQL","dataType":"string","valueList":["8.4.0","9.4.0"],"refSvcId":null,"isRequired":true,"defaultValue":"9.4.0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия MySQL","man":null,"sort":100,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":432,"svcOperationCfsParam":"autoScale","label":"Включить autoScale","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает автоскейлинг PV. При включении параметра необходимо настроить autoScalePercentage и autoScaleTechWindow. Алерт при срабатывании вызывает modify у текущей услуги","man":null,"sort":310,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":433,"svcOperationCfsParam":"autoScalePercentage","label":"На сколько % расширяться диск (мин. 1G)","dataType":"integer > 0","valueList":["10","15","20"],"refSvcId":null,"isRequired":false,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Требует включения autoScale. Позволяет указать в процентах расширение от текущего макс объема","man":null,"sort":320,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":434,"svcOperationCfsParam":"autoScaleTechWindow","label":"Тех окно обновления дисков","dataType":"integer >= 0","valueList":["0","5","12","23"],"refSvcId":null,"isRequired":false,"defaultValue":"0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Требует включения autoScale. Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23)","man":null,"sort":330,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":435,"svcOperationCfsParam":"autoScaleQuotaGb","label":"Квота для autoScale","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Квота для autoScale","man":null,"sort":340,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}],"paramCount":14} +{"svcId":116,"svc":"ApacheKafka","svcShort":"kafka","code":"null","operation":"delete","svcOperationId":149,"params":[],"paramCount":0} +{"svcId":116,"svc":"ApacheKafka","svcShort":"kafka","code":"null","operation":"delete_topic","svcOperationId":167,"params":[{"svcOperationCfsParamId":529,"svcOperationCfsParam":"nameTopic","label":"Название топика","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходимо выбрать топик, который необходимо удалить","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":1} +{"svcId":116,"svc":"ApacheKafka","svcShort":"kafka","code":"null","operation":"resume","svcOperationId":161,"params":[],"paramCount":0} +{"svcId":116,"svc":"ApacheKafka","svcShort":"kafka","code":"null","operation":"create_user","svcOperationId":168,"params":[{"svcOperationCfsParamId":530,"svcOperationCfsParam":"username","label":"Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `username-admin`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":531,"svcOperationCfsParam":"nameTopic","label":"Название топика, к которому будут назначены права для создоваемого пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`. Использовать маску нельзя(`orders*`), только полное название или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":532,"svcOperationCfsParam":"operations","label":"Список операций, которые разрешены пользователю на топике","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `Create, Describe, Read, Write`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":533,"svcOperationCfsParam":"group","label":"Группа, которым разрешён доступ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `order-consumers` или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":534,"svcOperationCfsParam":"accessHosts","label":"Список хостов, с которых разрешено подключение к Kafka","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `192.168.1.0/24` или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":5} +{"svcId":116,"svc":"ApacheKafka","svcShort":"kafka","code":"null","operation":"delete_user","svcOperationId":170,"params":[{"svcOperationCfsParamId":540,"svcOperationCfsParam":"username","label":"Имя удаляемого пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `username-admin`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":1} +{"svcId":116,"svc":"ApacheKafka","svcShort":"kafka","code":"null","operation":"suspend","svcOperationId":160,"params":[],"paramCount":0} +{"svcId":116,"svc":"ApacheKafka","svcShort":"kafka","code":"null","operation":"modify","svcOperationId":162,"params":[{"svcOperationCfsParamId":501,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов в сети","dataType":"integer > 0","valueList":["1","2","3","4","5"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `2`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":502,"svcOperationCfsParam":"resourceMemory","label":"Квота(megabyte) памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1000,"descr":"Пример: `2048`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":503,"svcOperationCfsParam":"resourceCPU","label":"Квота(millicore ) ядра пода","dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1000,"descr":"Пример: `2000`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":504,"svcOperationCfsParam":"resourceDisk","label":"Размер(gigabyte) диска для базы данных","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `20`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":505,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделяет внешний IP для доступа к master.","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-брокеру. Пример: `true` или `false`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":506,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации внешнего IP","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":6} +{"svcId":116,"svc":"ApacheKafka","svcShort":"kafka","code":"null","operation":"modify_user","svcOperationId":169,"params":[{"svcOperationCfsParamId":539,"svcOperationCfsParam":"username","label":"Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `username-admin`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":535,"svcOperationCfsParam":"nameTopic","label":"Название топика (topic), к которому будут назначены права для указанного пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`. Использовать маску нельзя(`orders*`), только полное название или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":536,"svcOperationCfsParam":"operations","label":"Список операций, которые разрешены пользователю на топике","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `Create, Describe, Read, Write`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":537,"svcOperationCfsParam":"group","label":"Группа, которым разрешён доступ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `order-consumers` или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":538,"svcOperationCfsParam":"accessHosts","label":"Список хостов, с которых разрешено подключение к Kafka","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `192.168.1.0/24` или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":5} +{"svcId":116,"svc":"ApacheKafka","svcShort":"kafka","code":"null","operation":"modify_topic","svcOperationId":166,"params":[{"svcOperationCfsParamId":526,"svcOperationCfsParam":"nameTopic","label":"Название топика","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":528,"svcOperationCfsParam":"replicas","label":"Количество реплик для топика","dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Количество партиций ≤ (число брокеров). Пример `2`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":527,"svcOperationCfsParam":"partitions","label":"Количество партиций топика","dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Число партиций на кластер ≤ 100 × (число брокеров) × (фактор репликации). Пример `50`","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":3} +{"svcId":116,"svc":"ApacheKafka","svcShort":"kafka","code":"null","operation":"create","svcOperationId":148,"params":[{"svcOperationCfsParamId":469,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать платформу из списка","man":null,"sort":5,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":461,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов в сети","dataType":"integer > 0","valueList":["1","2","3","4","5"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1,"descr":"Пример: `2`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":462,"svcOperationCfsParam":"resourceMemory","label":"Квота(megabyte) памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1000,"descr":"Пример: `2048`","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":463,"svcOperationCfsParam":"resourceCPU","label":"Квота(millicore ) ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1000,"descr":"Пример: `2000`","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":464,"svcOperationCfsParam":"resourceDisk","label":"Размер(gigabyte) диска для базы данных","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `20`","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":465,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделяет внешний IP для доступа к master","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-брокеру. Пример: `true` или `false`","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":466,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации внешнего IP","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}],"paramCount":7} +{"svcId":116,"svc":"ApacheKafka","svcShort":"kafka","code":"null","operation":"create_topic","svcOperationId":165,"params":[{"svcOperationCfsParamId":523,"svcOperationCfsParam":"nameTopic","label":"Название топика","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":525,"svcOperationCfsParam":"replicas","label":"Количество реплик для топика","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Количество реплик не может привышать количество реплик брокера","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":524,"svcOperationCfsParam":"partitions","label":"Количество партиций топика","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Число партиций можно увеличить, но уменьшить их нельзя.","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":3} +{"svcId":117,"svc":"Nifi","svcShort":"nifi","code":"null","operation":"modify","svcOperationId":154,"params":[{"svcOperationCfsParamId":477,"svcOperationCfsParam":"partitions","label":"Количество партиций топика","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Число партиций на кластер ≤ 100 × (число брокеров) × (фактор репликации). Пример `50`","man":"Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":478,"svcOperationCfsParam":"replicas","label":"Количество реплик для топика","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Количество партиций ≤ (число брокеров). Пример `2`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":2} +{"svcId":117,"svc":"Nifi","svcShort":"nifi","code":"null","operation":"delete","svcOperationId":151,"params":[],"paramCount":0} +{"svcId":117,"svc":"Nifi","svcShort":"nifi","code":"null","operation":"create","svcOperationId":150,"params":[{"svcOperationCfsParamId":471,"svcOperationCfsParam":"kafkaUid","label":"Необходимо выбрать кластер кафки в который нужно создать топик","dataType":"uuid","valueList":null,"refSvcId":116,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать кластер из списка","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":474,"svcOperationCfsParam":"nameTopic","label":"Название топика","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":472,"svcOperationCfsParam":"partitions","label":"Количество партиций топика","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Число партиций на кластер ≤ 100 × (число брокеров) × (фактор репликации). Пример `50`","man":"Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":473,"svcOperationCfsParam":"replicas","label":"Количество реплик для топика","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Количество партиций ≤ (число брокеров). Пример `2`","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}],"paramCount":4} +{"svcId":119,"svc":"Akhq","svcShort":"Akhq","code":"null","operation":"modify","svcOperationId":180,"params":[{"svcOperationCfsParamId":565,"svcOperationCfsParam":"kafkaUid","label":"Кластер Kafka к которому нужно настроить подключение","dataType":"uuid","valueList":null,"refSvcId":116,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать кластер из списка","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":1} +{"svcId":119,"svc":"Akhq","svcShort":"Akhq","code":"null","operation":"delete","svcOperationId":176,"params":[],"paramCount":0} +{"svcId":119,"svc":"Akhq","svcShort":"Akhq","code":"null","operation":"resume","svcOperationId":178,"params":[],"paramCount":0} +{"svcId":119,"svc":"Akhq","svcShort":"Akhq","code":"null","operation":"suspend","svcOperationId":177,"params":[],"paramCount":0} +{"svcId":119,"svc":"Akhq","svcShort":"Akhq","code":"null","operation":"create","svcOperationId":175,"params":[{"svcOperationCfsParamId":555,"svcOperationCfsParam":"kafkaUid","label":"Кластер Kafka к которому нужно настроить подключение","dataType":"uuid","valueList":null,"refSvcId":116,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать кластер из списка","man":null,"sort":5,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":550,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать платформу из списка","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":554,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов в сети","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1,"descr":null,"man":null,"sort":11,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":551,"svcOperationCfsParam":"resourceMemory","label":"Квота(megabyte) памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":512,"descr":"Пример: `1024`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":552,"svcOperationCfsParam":"resourceCPU","label":"Квота(millicore ) ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":500,"descr":"Пример: `1000`","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":553,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":6} +{"svcId":12,"svc":"S3 Object Storage","svcShort":"s3","code":"paas.s3.ceph","operation":"resume","svcOperationId":3,"params":[],"paramCount":0} +{"svcId":12,"svc":"S3 Object Storage","svcShort":"s3","code":"paas.s3.ceph","operation":"suspend","svcOperationId":2,"params":[],"paramCount":0} +{"svcId":12,"svc":"S3 Object Storage","svcShort":"s3","code":"paas.s3.ceph","operation":"create_sub_user","svcOperationId":6,"params":[{"svcOperationCfsParamId":60,"svcOperationCfsParam":"subUserName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":61,"svcOperationCfsParam":"subUserAccess","label":null,"dataType":"string","valueList":["read","write","readwrite","full"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":2} +{"svcId":12,"svc":"S3 Object Storage","svcShort":"s3","code":"paas.s3.ceph","operation":"delete","svcOperationId":5,"params":[],"paramCount":0} +{"svcId":12,"svc":"S3 Object Storage","svcShort":"s3","code":"paas.s3.ceph","operation":"create","svcOperationId":1,"params":[{"svcOperationCfsParamId":320,"svcOperationCfsParam":"displayName","label":"Человеко-читаемое имя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Человеко-читаемое имя (транслит из Elma) - передаётся имя клиента","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":163,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"кластер S3 для подключения","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":2} +{"svcId":12,"svc":"S3 Object Storage","svcShort":"s3","code":"paas.s3.ceph","operation":"delete_sub_user","svcOperationId":7,"params":[{"svcOperationCfsParamId":63,"svcOperationCfsParam":"subUserName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"subUserName. По идее услуга уже создана - должен передаваться из ЛК","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":1} +{"svcId":12,"svc":"S3 Object Storage","svcShort":"s3","code":"paas.s3.ceph","operation":"modify","svcOperationId":4,"params":[{"svcOperationCfsParamId":50,"svcOperationCfsParam":"maxSizeGbPerUser","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":50000,"minvalue":1,"descr":"maxSizeGb. Передаём руками","man":"maxSizeGb. Передаём руками","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":51,"svcOperationCfsParam":"maxObjectsPerBucket","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":10000000,"minvalue":1,"descr":"Квота на бакет. Кол-во объектов. Передаём руками","man":"Квота на бакет. Кол-во объектов. Передаём руками","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":52,"svcOperationCfsParam":"maxBucketsPerUser","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":1000,"minvalue":1,"descr":"Квота на пользователя. Количество бакетов пользователя. Передаём руками","man":"Квота на пользователя. Количество бакетов пользователя. Передаём руками","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":3} +{"svcId":120,"svc":"ClickHouse","svcShort":"clickhouse","code":"null","operation":"delete_user","svcOperationId":187,"params":[{"svcOperationCfsParamId":601,"svcOperationCfsParam":"username","label":null,"dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя пользователя, созданное через операцию `create_user`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":1} +{"svcId":120,"svc":"ClickHouse","svcShort":"clickhouse","code":"null","operation":"delete_database","svcOperationId":188,"params":[{"svcOperationCfsParamId":602,"svcOperationCfsParam":"databaseName","label":"Имя базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"ВСЕ ДАННЫЕ ВНУТРИ БД БУДУТ УДАЛЕНЫ","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":1} +{"svcId":120,"svc":"ClickHouse","svcShort":"clickhouse","code":"null","operation":"delete","svcOperationId":184,"params":[],"paramCount":0} +{"svcId":120,"svc":"ClickHouse","svcShort":"clickhouse","code":"null","operation":"resume","svcOperationId":183,"params":[],"paramCount":0} +{"svcId":120,"svc":"ClickHouse","svcShort":"clickhouse","code":"null","operation":"create_user","svcOperationId":185,"params":[{"svcOperationCfsParamId":596,"svcOperationCfsParam":"username","label":"Имя пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?![0-9_])[a-zA-Z_][a-zA-Z0-9_]{0,62}$","uniqueScope":null,"maxlength":62,"minlength":2,"maxvalue":null,"minvalue":null,"descr":"Пример: `myusername`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":598,"svcOperationCfsParam":"databaseName","label":"Список баз данных, к которым будет предоставлен доступ","dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[\"database\"]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходимо указать массив существующих баз","man":"Если базы не существует - при выполнении операции вернётся ошибка","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":599,"svcOperationCfsParam":"accessHosts","label":"Список хостов, с которых разрешено подключение к ClickHouse от лица пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"::/0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `::/0`","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":3} +{"svcId":120,"svc":"ClickHouse","svcShort":"clickhouse","code":"null","operation":"create","svcOperationId":181,"params":[{"svcOperationCfsParamId":572,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Кластер Kubernetes в котором будет развёрнуто приложение","man":"Выбрать платформу из списка

**Если список не отображается**
обратитесь к сервис менеджеру с вопросом предоставления ресурсной платформы","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":573,"svcOperationCfsParam":"s3Uid","label":"Услуга S3 для резервных копий","dataType":"uuid","valueList":null,"refSvcId":12,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Экземпляр (учетная запись) S3 для резервного копирования. Резервное копирование обязательно","man":"**Если список не отображается**
перейдите в раздел `S3 Object Storage`
операция `create`","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":574,"svcOperationCfsParam":"resourceInstances","label":"Кол-во реплик каждого шарда","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `3`","man":"**Для синхронизации данных между репликами** необходимо включить `Создать ClickHouse-Keeper`","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":575,"svcOperationCfsParam":"resourceInstancesShards","label":"Количество шардов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `1`","man":"**Шард** - это часть данных, разделенная на разные узлы (серверы) для горизонтального масштабирования и обработки больших объемов информации.
**Реплика** - это точная копия данных внутри одного шарда","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":576,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода кластера","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1000","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8000,"minvalue":1000,"descr":"Пример: `1000`","man":"Указывается в Milicores
`1000` Mili == `1` Ядро","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":577,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода кластера","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1536","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":1536,"descr":"Пример: `2048`","man":"Указывается в Megabytes","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":578,"svcOperationCfsParam":"appVersion","label":"Версия ClickHouse-server","dataType":"string","valueList":["25.10"],"refSvcId":null,"isRequired":true,"defaultValue":"25.10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия `clickhouse-server`","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":579,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Пример: `100`","man":"Указывается в Gigabytes","sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":580,"svcOperationCfsParam":"needExternalAddressMaster","label":"Публикация белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Позволяет подключиться извне к ClickHouse","man":"Для выделения IP также необходимо указать имя Ip-space.
Его можно получить из свойств ресурсной платформы","sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":581,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации белого ip master ноды","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `internet-no-antiddos-v1`","man":"Имя ipSpace для публикации внешнего адреса

Не может быть пустым, если включен `Выделение белого ip для master ноды`","sort":100,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":582,"svcOperationCfsParam":"needCreateKeeper","label":"Создать ClickHouse-Keeper","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходим для кластеризации ClickHouse","man":"Аналог `Zookeeper`, представленный от ClickHouse","sort":200,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":583,"svcOperationCfsParam":"resourceCPUKeeper","label":"Квота ядра пода Keeper","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"50","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8000,"minvalue":50,"descr":"Пример: `100`","man":"Указывается в Milicores
`1000` Mili == `1` Ядро","sort":210,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":584,"svcOperationCfsParam":"resourceMemoryKeeper","label":"Квота памяти пода Keeper","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"152","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":152,"descr":"Пример: `256`","man":"Указывается в Megabytes","sort":220,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":585,"svcOperationCfsParam":"resourceInstancesKeeper","label":"Кол-во реплик Keeper","dataType":"integer > 0","valueList":["1","3"],"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":3,"minvalue":1,"descr":"Пример: `1`","man":"Для **теста** - 1 нода.
Для **продуктива** - 3 ноды","sort":230,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":586,"svcOperationCfsParam":"ext_BACKUP_SCHEDULE","label":"Расписание резервного копирования","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"0 0 * * *","defaultCompute":null,"func":null,"regex":"^((((\\d+,)+\\d+|(\\d+(\\/|-|#)\\d+)|(\\d+L?)|(\\*(\\/\\d+)?)|(L(-\\d+)?)|(\\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\\d+(ns|us|µs|ms|s|m|h))+)$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Принимает формат `CRON`","man":null,"sort":500,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":587,"svcOperationCfsParam":"ext_BACKUP_NUM_TO_RETAIN","label":"Количество резервных копий","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"7","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":60,"minvalue":3,"descr":"Пример: `7`","man":"Кол-во **полных** резервных копий
Кол-во инкрементов - неограничено

Полная резервная копия выполняется раз в неделю
*Если изначально полной резервной копии нет* выполняется полный бекап
В остальные дни по крону выполняются **инкременты**","sort":510,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}],"paramCount":16} +{"svcId":120,"svc":"ClickHouse","svcShort":"clickhouse","code":"null","operation":"modify","svcOperationId":189,"params":[{"svcOperationCfsParamId":603,"svcOperationCfsParam":"resourceInstances","label":"Кол-во реплик каждого шарда","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `3`","man":"**Для синхронизации данных между репликами** необходимо включить `Создать ClickHouse-Keeper`","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":604,"svcOperationCfsParam":"resourceInstancesShards","label":"Количество шардов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `1`","man":"**Шард** - это часть данных, разделенная на разные узлы (серверы) для горизонтального масштабирования и обработки больших объемов информации.
**Реплика** - это точная копия данных внутри одного шарда","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":605,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода кластера","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8000,"minvalue":1000,"descr":"Пример: `1000`","man":"Указывается в Milicores
`1000` Mili == `1` Ядро","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":606,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода кластера","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":1536,"descr":"Пример: `2048`","man":"Указывается в Megabytes","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":607,"svcOperationCfsParam":"appVersion","label":"Версия ClickHouse-server","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"25.10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия `clickhouse-server`","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":608,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Пример: `100`","man":"Указывается в Gigabytes
**Нельзя** выставлять меньше текущего значения","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":609,"svcOperationCfsParam":"needExternalAddressMaster","label":"Публикация белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Позволяет подключиться извне к ClickHouse","man":"Для выделения IP также необходимо указать имя Ip-space.
Его можно получить из свойств ресурсной платформы","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":610,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации белого ip master ноды","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `internet-no-antiddos-v1`","man":"Имя ipSpace для публикации внешнего адреса

Не может быть пустым, если включен `Выделение белого ip для master ноды`","sort":80,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":611,"svcOperationCfsParam":"needCreateKeeper","label":"Создать ClickHouse-Keeper","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходим для кластеризации ClickHouse","man":"Аналог `Zookeeper`, представленный от ClickHouse","sort":200,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":612,"svcOperationCfsParam":"resourceCPUKeeper","label":"Квота ядра пода Keeper","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8000,"minvalue":50,"descr":"Пример: `100`","man":"Указывается в Milicores
`1000` Mili == `1` Ядро","sort":210,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":613,"svcOperationCfsParam":"resourceMemoryKeeper","label":"Квота памяти пода Keeper","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":152,"descr":"Пример: `256`","man":"Указывается в Megabytes","sort":220,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":614,"svcOperationCfsParam":"resourceInstancesKeeper","label":"Кол-во реплик Keeper","dataType":"integer > 0","valueList":["1","3"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":3,"minvalue":1,"descr":"Пример: `1`","man":"Для **теста** - 1 нода.
Для **продуктива** - 3 ноды","sort":230,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":615,"svcOperationCfsParam":"ext_BACKUP_SCHEDULE","label":"Расписание резервного копирования","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"0 0 * * *","defaultCompute":null,"func":null,"regex":"^((((\\d+,)+\\d+|(\\d+(\\/|-|#)\\d+)|(\\d+L?)|(\\*(\\/\\d+)?)|(L(-\\d+)?)|(\\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\\d+(ns|us|µs|ms|s|m|h))+)$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Принимает формат `CRON`","man":null,"sort":500,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":616,"svcOperationCfsParam":"ext_BACKUP_NUM_TO_RETAIN","label":"Количество резервных копий","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":60,"minvalue":3,"descr":"Пример: `7`","man":"Кол-во **полных** резервных копий
Кол-во инкрементов - неограничено

Полная резервная копия выполняется раз в неделю
*Если изначально полной резервной копии нет* выполняется полный бекап
В остальные дни по крону выполняются **инкременты**","sort":510,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":14} +{"svcId":120,"svc":"ClickHouse","svcShort":"clickhouse","code":"null","operation":"create_database","svcOperationId":186,"params":[{"svcOperationCfsParamId":600,"svcOperationCfsParam":"databaseName","label":"Имя базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `db01`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":1} +{"svcId":120,"svc":"ClickHouse","svcShort":"clickhouse","code":"null","operation":"suspend","svcOperationId":182,"params":[],"paramCount":0} +{"svcId":13,"svc":"S3 бакет","svcShort":"s3bucket","code":"null","operation":"create","svcOperationId":51,"params":[{"svcOperationCfsParamId":124,"svcOperationCfsParam":"s3UserUid","label":"UID Корневой услуги S3","dataType":"uuid","valueList":null,"refSvcId":12,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UID Корневой услуги S3. На основе него будет создан бакет.","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":125,"svcOperationCfsParam":"bucketName","label":"Имя бакета s3","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя бакета s3","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":126,"svcOperationCfsParam":"maxSize","label":"Размер бакета","dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"-1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Максимальный размер бакета s3. Если поставить -1, будет безлимит. Размер указывается в Bytes","man":"Максимальный размер бакета s3. Если поставить 0, будет безлимит. Размер указывается в Bytes","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":127,"svcOperationCfsParam":"readAll","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Публичный доступ на чтение позволяет любому пользователю интернета скачивать объекты из бакета.","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":128,"svcOperationCfsParam":"listAll","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Публичный доступ к листингу позволяет любому пользователю интернета получить список объектов в бакете.","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":129,"svcOperationCfsParam":"corsAll","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Публичный доступ к чтению настроек позволяет любому пользователю интернета читать конфигурации CORS","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":130,"svcOperationCfsParam":"placement","label":"Класс хранилища","dataType":"string","valueList":["HOT","COLD"],"refSvcId":null,"isRequired":true,"defaultValue":"HOT","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Класс хранилища, который используется по умолчанию при загрузке объектов. Чем холоднее, тем дешевле место, но дороже обращения","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":7} +{"svcId":13,"svc":"S3 бакет","svcShort":"s3bucket","code":"null","operation":"delete","svcOperationId":52,"params":[],"paramCount":0} +{"svcId":149,"svc":"VALO Cloud","svcShort":"valoTenant","code":"null","operation":"resume","svcOperationId":205,"params":[],"paramCount":0} +{"svcId":149,"svc":"VALO Cloud","svcShort":"valoTenant","code":"null","operation":"suspend","svcOperationId":204,"params":[],"paramCount":0} +{"svcId":149,"svc":"VALO Cloud","svcShort":"valoTenant","code":"null","operation":"delete","svcOperationId":206,"params":[],"paramCount":0} +{"svcId":149,"svc":"VALO Cloud","svcShort":"valoTenant","code":"null","operation":"modify","svcOperationId":203,"params":[{"svcOperationCfsParamId":659,"svcOperationCfsParam":"valoOptions","label":"Настройки тенанта","dataType":"map-fixed","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":660,"svcOperationCfsParam":"s3Storage","label":"Параметры хранилища","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Параметр указывается в `Gb`","man":"Данные хранятся в отдельном экземпляре S3","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":2} +{"svcId":149,"svc":"VALO Cloud","svcShort":"valoTenant","code":"null","operation":"create","svcOperationId":202,"params":[{"svcOperationCfsParamId":655,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":656,"svcOperationCfsParam":"domain","label":"DNS-Префикс","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^[a-z0-9](?:[a-z0-9-]{3,61}[a-z0-9])?$","uniqueScope":null,"maxlength":61,"minlength":3,"maxvalue":null,"minvalue":null,"descr":"Будет добавлено в зону valo.ngcloud.ru","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":658,"svcOperationCfsParam":"s3Storage","label":"Параметры хранилища","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Параметр указывается в `Gb`","man":"Данные хранятся в отдельном экземпляре S3","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":657,"svcOperationCfsParam":"valoOptions","label":"Настройки тенанта","dataType":"map-fixed","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"{}","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}],"paramCount":4} +{"svcId":150,"svc":"Kubernetes кластер Штурвал","svcShort":"k8sSthutrvalCluster","code":"paas.k8s.stw","operation":"create","svcOperationId":108,"params":[{"svcOperationCfsParamId":344,"svcOperationCfsParam":"nsxtUid","label":"UUID nsxt","dataType":"uuid","valueList":null,"refSvcId":22,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"InstanceUid nsxt. Nsxt должен быть создан","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":747,"svcOperationCfsParam":"vdcUid","label":"UUID vdc","dataType":"uuid","valueList":null,"refSvcId":21,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":345,"svcOperationCfsParam":"clusterName","label":"Имя кластера Kubernetes","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"example1","defaultCompute":null,"func":null,"regex":"(?=^.{1,63}$)^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","uniqueScope":"provider","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Наименование кластера Kubernetes. Имя будет использоваться в fqdn (svc.$CLUSTER_NAME)","man":null,"sort":25,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":346,"svcOperationCfsParam":"controlPlaneSizingPolicy","label":"Сайзинг Control Plane","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Настройка Control Plane. CPU (шт) / MEM (gb).
Наверное, должна подтягиваться из свойств ресурсной платформы","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":347,"svcOperationCfsParam":"controlPlaneSizingDisk","label":"Размер (Gb) для Control Plane","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"30","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":20,"descr":"Настройка Control Plane. Disk (Gb)","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":348,"svcOperationCfsParam":"controlPlaneCount","label":"Кол-во нод Control Plane","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":9,"minvalue":1,"descr":null,"man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":349,"svcOperationCfsParam":"workersSizingPolicy","label":"Сайзинг Workers","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Настройка workers. CPU (шт) / MEM (gb)","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":350,"svcOperationCfsParam":"workersSizingDisk","label":"Размер (Gb) для Workers","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"40","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":20,"descr":"Настройка workers. Disk (Gb)","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":351,"svcOperationCfsParam":"workersCount","label":"Кол-во нод Workers","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"2","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":99,"minvalue":1,"descr":"Настройка workers. Кол-во нод","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":352,"svcOperationCfsParam":"appVersion","label":"Версия Штурвал","dataType":"string","valueList":["2.12.1","2.11.0"],"refSvcId":null,"isRequired":true,"defaultValue":"2.12.1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия Штурвал (не является версией Kubernetes)","man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":353,"svcOperationCfsParam":"needExternalAddressAPI","label":"Включить vIP для Kubernetes API","dataType":"boolean","valueList":["true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP для доступа к kubernetes API. Пока нельзя выставить false","man":null,"sort":100,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":354,"svcOperationCfsParam":"accessIpListAPI","label":"Access-List для Kubernetes API","dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Access IP List для подключения к Kubernetes API. Указывается массив. Если передан пустой массив, доступ выделяется всем","man":null,"sort":110,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":355,"svcOperationCfsParam":"needExternalAddressIngress","label":"Включить vIP для Kubernetes Ingress","dataType":"boolean","valueList":["true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP для доступа к Ingress","man":null,"sort":120,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":356,"svcOperationCfsParam":"accessIpListIngress","label":"Access-List для Kubernetes Ingress","dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Access IP List для подключения к Ingress. Указывается массив. Если передан пустой массив, доступ выделяется всем","man":null,"sort":130,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}],"paramCount":14} +{"svcId":150,"svc":"Kubernetes кластер Штурвал","svcShort":"k8sSthutrvalCluster","code":"paas.k8s.stw","operation":"delete","svcOperationId":109,"params":[],"paramCount":0} +{"svcId":150,"svc":"Kubernetes кластер Штурвал","svcShort":"k8sSthutrvalCluster","code":"paas.k8s.stw","operation":"modify","svcOperationId":110,"params":[{"svcOperationCfsParamId":362,"svcOperationCfsParam":"controlPlaneCount","label":"Кол-во нод Control Plane","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":9,"minvalue":1,"descr":"Кол-во нод Control Plane","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":363,"svcOperationCfsParam":"workersCount","label":"Кол-во нод Workers","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":99,"minvalue":1,"descr":"Кол-во нод Workers","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":364,"svcOperationCfsParam":"accessIpListAPI","label":"Access-List для Kubernetes API","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Access IP List для подключения к Kubernetes API. Указывается массив. Если передан пустой массив, доступ выделяется всем","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":365,"svcOperationCfsParam":"accessIpListIngress","label":"Access-List для Kubernetes Ingress","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Access IP List для подключения к Ingress. Указывается массив. Если передан пустой массив, доступ выделяется всем","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":563,"svcOperationCfsParam":"appVersion","label":"Версия Штурвал","dataType":"string","valueList":["2.11.0","2.12.1"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия Штурвал (не является версией Kubernetes)
Понижать версию нельзя
Обновиться на несколько минорных нельзя
Невозможно перепрыгнуть не с последней минорной на мажорную
Можно обновиться на несколько патчей","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":637,"svcOperationCfsParam":"controlPlaneSizingDisk","label":"Размер (Gb) для Control Plane","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":638,"svcOperationCfsParam":"workersSizingDisk","label":"Размер (Gb) для Workers","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":7} +{"svcId":150,"svc":"Kubernetes кластер Штурвал","svcShort":"k8sSthutrvalCluster","code":"paas.k8s.stw","operation":"resume","svcOperationId":174,"params":[],"paramCount":0} +{"svcId":150,"svc":"Kubernetes кластер Штурвал","svcShort":"k8sSthutrvalCluster","code":"paas.k8s.stw","operation":"suspend","svcOperationId":173,"params":[],"paramCount":0} +{"svcId":150,"svc":"Kubernetes кластер Штурвал","svcShort":"k8sSthutrvalCluster","code":"paas.k8s.stw","operation":"update_secrets","svcOperationId":179,"params":[],"paramCount":0} +{"svcId":150,"svc":"Kubernetes кластер Штурвал","svcShort":"k8sSthutrvalCluster","code":"paas.k8s.stw","operation":"reconcile","svcOperationId":253,"params":[],"paramCount":0} +{"svcId":19,"svc":"Организация в Cloud Director","svcShort":"vcOrg","code":"null","operation":"reconcile","svcOperationId":249,"params":[],"paramCount":0} +{"svcId":19,"svc":"Организация в Cloud Director","svcShort":"vcOrg","code":"null","operation":"resume","svcOperationId":144,"params":[],"paramCount":0} +{"svcId":19,"svc":"Организация в Cloud Director","svcShort":"vcOrg","code":"null","operation":"create","svcOperationId":136,"params":[{"svcOperationCfsParamId":418,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Облако в котором будет развёрнут тенант","man":"Выбрать платформу из списка

**Если список не отображается**
обратитесь к сервис менеджеру с вопросом предоставления ресурсной платформы","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":556,"svcOperationCfsParam":"organizationType","label":"Тип организации","dataType":"string","valueList":["iaas","saas"],"refSvcId":null,"isRequired":true,"defaultValue":"iaas","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Доступ к организации предоставляется только при выборе `iaas`","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":2} +{"svcId":19,"svc":"Организация в Cloud Director","svcShort":"vcOrg","code":"null","operation":"suspend","svcOperationId":143,"params":[],"paramCount":0} +{"svcId":19,"svc":"Организация в Cloud Director","svcShort":"vcOrg","code":"null","operation":"delete","svcOperationId":137,"params":[],"paramCount":0} +{"svcId":19,"svc":"Организация в Cloud Director","svcShort":"vcOrg","code":"null","operation":"modify","svcOperationId":207,"params":[{"svcOperationCfsParamId":662,"svcOperationCfsParam":"vIPConfigure","label":"Настройка внешних IP","dataType":"array-map-fixed","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":1} +{"svcId":2,"svc":"Темплейт k8s","svcShort":"template","code":"null","operation":"create","svcOperationId":74,"params":[{"svcOperationCfsParamId":202,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"100","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":203,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"200","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":204,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":205,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":206,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":207,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":6} +{"svcId":2,"svc":"Темплейт k8s","svcShort":"template","code":"null","operation":"delete","svcOperationId":75,"params":[],"paramCount":0} +{"svcId":2,"svc":"Темплейт k8s","svcShort":"template","code":"null","operation":"modify","svcOperationId":76,"params":[{"svcOperationCfsParamId":208,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":209,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":210,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":211,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":4} +{"svcId":2,"svc":"Темплейт k8s","svcShort":"template","code":"null","operation":"suspend","svcOperationId":97,"params":[],"paramCount":0} +{"svcId":2,"svc":"Темплейт k8s","svcShort":"template","code":"null","operation":"resume","svcOperationId":98,"params":[],"paramCount":0} +{"svcId":20,"svc":"Организация [DEPRECATED]","svcShort":"vcOrgSaas","code":"null","operation":"create","svcOperationId":8,"params":[{"svcOperationCfsParamId":185,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование ресурсной платформы","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":1} +{"svcId":20,"svc":"Организация [DEPRECATED]","svcShort":"vcOrgSaas","code":"null","operation":"delete","svcOperationId":23,"params":[],"paramCount":0} +{"svcId":20,"svc":"Организация [DEPRECATED]","svcShort":"vcOrgSaas","code":"null","operation":"suspend","svcOperationId":118,"params":[],"paramCount":0} +{"svcId":20,"svc":"Организация [DEPRECATED]","svcShort":"vcOrgSaas","code":"null","operation":"resume","svcOperationId":119,"params":[],"paramCount":0} +{"svcId":21,"svc":"Виртуальный датацентр (vDC)","svcShort":"vc_vdc","code":"null","operation":"create","svcOperationId":9,"params":[{"svcOperationCfsParamId":30,"svcOperationCfsParam":"organizationUid","label":"UUID Организации","dataType":"uuid","valueList":null,"refSvcId":19,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Для создания VDC предварительно необходимо создать организацию через услугу `Организация в Cloud Director`","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":746,"svcOperationCfsParam":"networkProvider","label":"Зона доступности","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":335,"svcOperationCfsParam":"providerVdc","label":"Кластер ресурсов","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Приписка `2.8` - Скорость vCPU - 2800MHz
И так далее...
","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":397,"svcOperationCfsParam":"cpuGuaranteed","label":"Гарантированная доля ЯДЕР","dataType":"integer > 0","valueList":["20","50","80"],"refSvcId":null,"isRequired":true,"defaultValue":"20","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"% резервирования","man":"Свойство нельзя изменить после создания","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":398,"svcOperationCfsParam":"memGuaranteed","label":"Гарантированная доля ОЗУ","dataType":"integer > 0","valueList":["20","50","80"],"refSvcId":null,"isRequired":true,"defaultValue":"20","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"% резервирования","man":"После создания нельзя изменить","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":557,"svcOperationCfsParam":"cpuAllocated","label":"Сколько аллоцировать на VDC ЯДЕР","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":200,"minvalue":1,"descr":"шт","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":558,"svcOperationCfsParam":"memAllocated","label":"Сколько аллоцировать на VDC ОЗУ","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"20","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4096,"minvalue":1,"descr":"gb","man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":361,"svcOperationCfsParam":"storageConfig","label":"Конфигурация Storage","dataType":"array-map-fixed","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Первая политика в списке указывается как "По умолчанию"","sort":100,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}],"paramCount":8} +{"svcId":21,"svc":"Виртуальный датацентр (vDC)","svcShort":"vc_vdc","code":"null","operation":"modify","svcOperationId":112,"params":[{"svcOperationCfsParamId":560,"svcOperationCfsParam":"cpuAllocated","label":"Сколько аллоцировать на VDC ЯДЕР","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"шт","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":561,"svcOperationCfsParam":"memAllocated","label":"Сколько аллоцировать на VDC ОЗУ","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":1024,"minvalue":1,"descr":"gb","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":562,"svcOperationCfsParam":"storageConfig","label":"Конфигурация Storage","dataType":"array-map-fixed","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Первая политика в списке указывается как "По умолчанию"","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":3} +{"svcId":21,"svc":"Виртуальный датацентр (vDC)","svcShort":"vc_vdc","code":"null","operation":"reconcile","svcOperationId":250,"params":[],"paramCount":0} +{"svcId":21,"svc":"Виртуальный датацентр (vDC)","svcShort":"vc_vdc","code":"null","operation":"resume","svcOperationId":172,"params":[],"paramCount":0} +{"svcId":21,"svc":"Виртуальный датацентр (vDC)","svcShort":"vc_vdc","code":"null","operation":"suspend","svcOperationId":171,"params":[],"paramCount":0} +{"svcId":21,"svc":"Виртуальный датацентр (vDC)","svcShort":"vc_vdc","code":"null","operation":"delete","svcOperationId":24,"params":[],"paramCount":0} +{"svcId":22,"svc":"Сетевой шлюз периметра (Edge)","svcShort":"vc_nsxt","code":"null","operation":"create","svcOperationId":10,"params":[{"svcOperationCfsParamId":621,"svcOperationCfsParam":"vdcType","label":"Тип подключаемой VDC","dataType":"string","valueList":["vdc","vdcGroup"],"refSvcId":null,"isRequired":true,"defaultValue":"vdc","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Тип родительской услуги","man":"При выборе vdc обеспечивает сетевую доступность только в рамках этого vdc
При выборе groupvdc обеспечивает сетевую доступность между всеми vdc, которые включены в groupvdc","sort":0,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":8,"svcOperationCfsParam":"vdcUid","label":"UUID Услуги VDC","dataType":"string","valueList":null,"refSvcId":21,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID Услуги `Виртуальный датацентр (vDC)`","man":"Необходимо, если выбран тип подключаемой VDC: `vdc`","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":622,"svcOperationCfsParam":"vdcGroupUid","label":"UUID Услуги Группы VDC","dataType":"string","valueList":null,"refSvcId":29,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID Услуги `Группа виртуальных датацентров (groupvDC)`","man":"Необходимо, если выбран тип подключаемой VDC: `groupvdc`","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":340,"svcOperationCfsParam":"needEnableAVI","label":"Включить ALB","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включение Load Balancer","man":"Параметры `Наименование segroup`, `Кол-во VS на AVI` необходимо также указать","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":341,"svcOperationCfsParam":"virtualServicesCount","label":"Кол-во VS на AVI","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4,"minvalue":1,"descr":"Кол-во виртуальных сервисов, которые **резервируются** на AVI","man":"Во избежании коллапса пока выделяется до 4
Необходимо указывать, если включён параметр `Включить ALB`","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}],"paramCount":5} +{"svcId":22,"svc":"Сетевой шлюз периметра (Edge)","svcShort":"vc_nsxt","code":"null","operation":"modify","svcOperationId":111,"params":[{"svcOperationCfsParamId":368,"svcOperationCfsParam":"needEnableAVI","label":"Включить ALB","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включение Load Balancer","man":"Параметры `Наименование segroup`, `Кол-во VS на AVI` необходимо также указать","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":369,"svcOperationCfsParam":"virtualServicesCount","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4,"minvalue":1,"descr":"Кол-во виртуальных сервисов, которые выделяются на AVI","man":"Во избежании коллапса пока выделяется до 4
Необходимо указывать, если включён параметр `Включить ALB`","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":371,"svcOperationCfsParam":"needExternalAddressSNAT","label":"Выделить VIP для SNAT","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Создать правило SNAT на подсеть `10.10.102.0/24`","man":"Параметр `ip Space для VIP` станет обязательным, если указан `true`","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":372,"svcOperationCfsParam":"ipSpaceName","label":"ip Space для VIP","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ip Space для внешнего IP

getKeyListFromStruct(getInstanceState(getValueFromStruct(getInstanceState(getValueFromStruct(getInstanceState(), "params.vdcUid")), "params.organizationUid")), "params.vIPConfigure")","man":"Необходимо указывать, если включён параметр `Выделить VIP для SNAT`","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":4} +{"svcId":22,"svc":"Сетевой шлюз периметра (Edge)","svcShort":"vc_nsxt","code":"null","operation":"reconcile","svcOperationId":252,"params":[],"paramCount":0} +{"svcId":22,"svc":"Сетевой шлюз периметра (Edge)","svcShort":"vc_nsxt","code":"null","operation":"delete","svcOperationId":25,"params":[],"paramCount":0} +{"svcId":23,"svc":"VM в Cloud Director (старый формат) (vc_vm)","svcShort":"vc_vm","code":"null","operation":"suspend","svcOperationId":27,"params":[],"paramCount":0} +{"svcId":23,"svc":"VM в Cloud Director (старый формат) (vc_vm)","svcShort":"vc_vm","code":"null","operation":"delete","svcOperationId":29,"params":[],"paramCount":0} +{"svcId":23,"svc":"VM в Cloud Director (старый формат) (vc_vm)","svcShort":"vc_vm","code":"null","operation":"modify","svcOperationId":68,"params":[{"svcOperationCfsParamId":186,"svcOperationCfsParam":"vmCpu","label":"CPU","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"CPU","man":"CPU","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":187,"svcOperationCfsParam":"vmRam","label":"RAM","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"RAM","man":"RAM","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":188,"svcOperationCfsParam":"vmDisksize","label":"Диск VM","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Размер диска под сервис (GB)","man":"Размер диска под сервис (GB)","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":189,"svcOperationCfsParam":"accessIpList","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"IP адреса в CIDR формате через пробел для настройки аксес листов","man":"IP адреса в CIDR формате через пробел для настройки аксес листов","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":4} +{"svcId":23,"svc":"VM в Cloud Director (старый формат) (vc_vm)","svcShort":"vc_vm","code":"null","operation":"create","svcOperationId":26,"params":[{"svcOperationCfsParamId":33,"svcOperationCfsParam":"vappUid","label":"InstanceUid vApp","dataType":"uuid","valueList":null,"refSvcId":26,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"InstanceUid vApp. vApp должен быть создан","man":"InstanceUid vApp. vApp должен быть создан","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":35,"svcOperationCfsParam":"vmName","label":"Имя ВМ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"vm0001","defaultCompute":null,"func":null,"regex":"^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ВМ. Не поддерживает спец-символы","man":"Имя ВМ. Не поддерживает спец-символы","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":36,"svcOperationCfsParam":"vmCpu","label":"CPU","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"2","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"CPU","man":"CPU","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":37,"svcOperationCfsParam":"vmRam","label":"RAM","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"2","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"RAM (GB)","man":"RAM (GB)","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":38,"svcOperationCfsParam":"vmDisksize","label":"Диск VM","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Размер диска под сервис (GB)","man":"Размер диска под сервис (GB)","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":176,"svcOperationCfsParam":"templateName","label":null,"dataType":"string","valueList":["RockyLinux_9-16G","OracleLinux_9-16G","Ubuntu_24-20G","Ubuntu_22-20G"],"refSvcId":null,"isRequired":true,"defaultValue":"RockyLinux_9-16G","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"ОС","man":"ОС","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":177,"svcOperationCfsParam":"accessIpList","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"79.111.119.78/32 185.247.187.1/32","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Вставить содержимое из 'curl ifconfig.io'
IP адреса в CIDR формате через пробел для настройки аксес листов","man":"IP адреса в CIDR формате через пробел для настройки аксес листов","sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":406,"svcOperationCfsParam":"ipSpaceName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Брать из свойств ресурсной платформы
.vcd.ipSpace

Имя IP-space для выделения внешнего IP (IP выделяется обязательно)","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":8} +{"svcId":23,"svc":"VM в Cloud Director (старый формат) (vc_vm)","svcShort":"vc_vm","code":"null","operation":"resume","svcOperationId":28,"params":[],"paramCount":0} +{"svcId":25,"svc":"Публичные IP адреса","svcShort":"vcexternalip","code":"null","operation":"create","svcOperationId":56,"params":[{"svcOperationCfsParamId":140,"svcOperationCfsParam":"serviceUid","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":336,"svcOperationCfsParam":"ipSpaceName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Тип ip Space (internet-ipv4-v1 / internet-antiddos-v1 / internet-no-antiddos-v1)","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":141,"svcOperationCfsParam":"dnatCreate","label":null,"dataType":"boolean","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходимо создать DNAT-правило.","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":143,"svcOperationCfsParam":"snatCreate","label":null,"dataType":"boolean","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходимо создать SNAT-правило.
","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":142,"svcOperationCfsParam":"internalPortAccess","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"5432","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Порт для связки ната с адресом. Несколько значений можно передавать через пробел. Если передать all, то dnat будет на все порты. Требует dnatCreate=true
","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":144,"svcOperationCfsParam":"internalAddrAccess","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Внутренний адрес для связки ната. Требует dnatCreate=true или snatCreate=true","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":324,"svcOperationCfsParam":"fromServiceNamespace","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Namespace составной услуги (для отображения правил FW)","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":325,"svcOperationCfsParam":"fromServiceCloudEdgeName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Edge составной услуги (указывать, если resourceRealm связан с CloudDirector)","man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":326,"svcOperationCfsParam":"fromServiceCloudVdcName","label":null,"dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Vdc составной услуги (указывать, если resourceRealm связан с CloudDirector)","man":null,"sort":100,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":327,"svcOperationCfsParam":"fromServiceCloudOrgName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Org составной услуги (указывать, если resourceRealm связан с CloudDirector)","man":null,"sort":110,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":328,"svcOperationCfsParam":"fromServiceCloudVmwareUrl","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Api-Url составной услуги (указывать, если resourceRealm связан с CloudDirector)","man":null,"sort":120,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":624,"svcOperationCfsParam":"fromServiceCloudEdgeScope","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":130,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":626,"svcOperationCfsParam":"fromServiceVdcGroupName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":140,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":488,"svcOperationCfsParam":"resourceRealm","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":200,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":14} +{"svcId":25,"svc":"Публичные IP адреса","svcShort":"vcexternalip","code":"null","operation":"delete","svcOperationId":57,"params":[],"paramCount":0} +{"svcId":25,"svc":"Публичные IP адреса","svcShort":"vcexternalip","code":"null","operation":"modify","svcOperationId":197,"params":[{"svcOperationCfsParamId":627,"svcOperationCfsParam":"serviceUid","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":628,"svcOperationCfsParam":"ipSpaceName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":629,"svcOperationCfsParam":"dnatCreate","label":null,"dataType":"boolean","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":630,"svcOperationCfsParam":"snatCreate","label":null,"dataType":"boolean","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":631,"svcOperationCfsParam":"internalPortAccess","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":632,"svcOperationCfsParam":"internalAddrAccess","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":6} +{"svcId":26,"svc":"Виртуальный каталог ВМ (vApp)","svcShort":"vapp","code":"null","operation":"create","svcOperationId":69,"params":[{"svcOperationCfsParamId":623,"svcOperationCfsParam":"vdcUid","label":"UUID Услуги VDC","dataType":"uuid","valueList":null,"refSvcId":21,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID Услуги `Виртуальный датацентр (vDC)`","man":"В каких ресурсах будет создан виртуальный каталог","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":190,"svcOperationCfsParam":"nsxtUid","label":"UUID Услуги Edge","dataType":"uuid","valueList":null,"refSvcId":22,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID Услуги `Сетевой шлюз периметра (Edge)`","man":"К какой сети может быть подключен виртуальный каталог","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":191,"svcOperationCfsParam":"vappName","label":"Имя vApp","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^[a-z0-9][a-z0-9.-]{3,61}[a-z0-9]$","uniqueScope":null,"maxlength":null,"minlength":3,"maxvalue":null,"minvalue":null,"descr":"Уникальное в рамках организации","man":"Имеет строгую маску `^[a-z0-9][a-z0-9.-]{3,61}[a-z0-9]$`

Используется в формировании DNS-Имени (для виртуальных машин)","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":3} +{"svcId":26,"svc":"Виртуальный каталог ВМ (vApp)","svcShort":"vapp","code":"null","operation":"delete","svcOperationId":70,"params":[],"paramCount":0} +{"svcId":26,"svc":"Виртуальный каталог ВМ (vApp)","svcShort":"vapp","code":"null","operation":"resume","svcOperationId":209,"params":[],"paramCount":0} +{"svcId":26,"svc":"Виртуальный каталог ВМ (vApp)","svcShort":"vapp","code":"null","operation":"suspend","svcOperationId":208,"params":[],"paramCount":0} +{"svcId":27,"svc":"VM в Cloud Director (vc_vmV2)","svcShort":"vc_vm_v2","code":"null","operation":"resume","svcOperationId":102,"params":[],"paramCount":0} +{"svcId":27,"svc":"VM в Cloud Director (vc_vmV2)","svcShort":"vc_vm_v2","code":"null","operation":"create","svcOperationId":100,"params":[{"svcOperationCfsParamId":301,"svcOperationCfsParam":"serverListJson","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[{}]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":65536,"minlength":10,"maxvalue":null,"minvalue":null,"descr":"Необходимо изменить vappUid и ipSpaceName
Пример конфигурации взять по ссылке ниже

Объект серверов вида [{}] (Map(Object))
Более подробнее смотреть в README.md (https://gitea.mgmt.nubes.ru/cloudServices/vcVmV2)","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}],"paramCount":1} +{"svcId":27,"svc":"VM в Cloud Director (vc_vmV2)","svcShort":"vc_vm_v2","code":"null","operation":"modify","svcOperationId":104,"params":[{"svcOperationCfsParamId":302,"svcOperationCfsParam":"serverListJson","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[{}]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":65536,"minlength":10,"maxvalue":null,"minvalue":null,"descr":"Объект серверов вида [{}] (Map(Object))
Более подробнее смотреть в README.md (https://gitea.mgmt.nubes.ru/cloudServices/vcVmV2)","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":1} +{"svcId":27,"svc":"VM в Cloud Director (vc_vmV2)","svcShort":"vc_vm_v2","code":"null","operation":"suspend","svcOperationId":103,"params":[],"paramCount":0} +{"svcId":27,"svc":"VM в Cloud Director (vc_vmV2)","svcShort":"vc_vm_v2","code":"null","operation":"delete","svcOperationId":101,"params":[],"paramCount":0} +{"svcId":28,"svc":"Виртуальная машина","svcShort":"vc_vm_v3","code":"null","operation":"create","svcOperationId":132,"params":[{"svcOperationCfsParamId":407,"svcOperationCfsParam":"vappUid","label":"UUID vApp","dataType":"uuid","valueList":null,"refSvcId":26,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":408,"svcOperationCfsParam":"vmName","label":"Имя ВМ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":null,"func":null,"regex":"^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":409,"svcOperationCfsParam":"vmCpu","label":"Кол-во ядер","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":64,"minvalue":1,"descr":"шт","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":410,"svcOperationCfsParam":"vmRam","label":"Кол-во ОЗУ","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":256,"minvalue":1,"descr":"Gb","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":411,"svcOperationCfsParam":"vmDisk","label":"Размер дополнительного диска","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?:$|(?:0|[1-9]\\d{0,2}|1\\d{3}|20(?:[0-3]\\d|4[0-8])))$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Основной диск у vm зависит от образа (см. документацию)
Если необходимо дополнительное место для vm, введите колличество Gb в эту форму","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":412,"svcOperationCfsParam":"ipSpaceName","label":"Выделить внешний IP","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":413,"svcOperationCfsParam":"accessIpList","label":"Белый список подключения к ВМ","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?:$|\\[\\s*(?:\"(?:\\d{1,3}\\.){3}\\d{1,3}(?:\\/\\d{1,2})?\"(?:\\s*,\\s*\"(?:\\d{1,3}\\.){3}\\d{1,3}(?:\\/\\d{1,2})?\")*)\\s*\\])$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Формат массива
Каким адресам будет предоставлен доступ до вм

Требует выделенного внешнего IP
Если ничего не передано, то выставлено ["0.0.0.0/0"]","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":448,"svcOperationCfsParam":"accessPortList","label":"По каким портам открыть доступ к ВМ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[\"22\"]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"По каким портам открыть доступ к ВМ.
Порты 22, 10050 проставляются автоматически
Пока доступно:
22 - SSH,
80 - HTTP,
443 - HTTPS,
10050 - ZABBIX","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":414,"svcOperationCfsParam":"imageVm","label":"Образ ВМ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":416,"svcOperationCfsParam":"userLogin","label":"Логин для подключения","dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"myuser","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Учётка SSH","man":null,"sort":180,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":417,"svcOperationCfsParam":"userPublicKey","label":"Публичная часть SSH-Ключа","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Публичная часть SSH-Ключа для пользователя","man":null,"sort":190,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":415,"svcOperationCfsParam":"cloudInit","label":"Шаблон Cloud-Init","dataType":"yaml","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Можно передать создание дополнительных пользователей.
На текущий момент не реализовано выполнения в cloud-init, установки пакетов, выполнения команд и записи файлов.","man":null,"sort":200,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":449,"svcOperationCfsParam":"needAddZabbixTemplate","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Поле позволяет автоматически добавить новый хост в систему мониторинга Zabbix. После добавления вы сможете в реальном времени просматривать все метрики производительности хоста.","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}],"paramCount":13} +{"svcId":28,"svc":"Виртуальная машина","svcShort":"vc_vm_v3","code":"null","operation":"delete","svcOperationId":133,"params":[],"paramCount":0} +{"svcId":28,"svc":"Виртуальная машина","svcShort":"vc_vm_v3","code":"null","operation":"resume","svcOperationId":135,"params":[],"paramCount":0} +{"svcId":28,"svc":"Виртуальная машина","svcShort":"vc_vm_v3","code":"null","operation":"suspend","svcOperationId":134,"params":[],"paramCount":0} +{"svcId":28,"svc":"Виртуальная машина","svcShort":"vc_vm_v3","code":"null","operation":"redeploy","svcOperationId":164,"params":[{"svcOperationCfsParamId":509,"svcOperationCfsParam":"vmName","label":"Имя ВМ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":510,"svcOperationCfsParam":"vmCpu","label":"Кол-во ядер","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":64,"minvalue":1,"descr":"шт","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":511,"svcOperationCfsParam":"vmRam","label":"Кол-во ОЗУ","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":256,"minvalue":1,"descr":"Gb","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":512,"svcOperationCfsParam":"vmDisk","label":"Размер дополнительного диска","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?:$|(?:0|[1-9]\\d{0,2}|1\\d{3}|20(?:[0-3]\\d|4[0-8])))$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Основной диск у vm зависит от образа (см. документацию)
Если необходимо дополнительное место для vm, введите колличество Gb в эту форму","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":513,"svcOperationCfsParam":"ipSpaceName","label":"Выделить внешний IP","dataType":"string","valueList":["no-needed","internet-antiddos-v1","internet-no-antiddos-v1","internet-ipv4-v1"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"no-needed, без внешнего ip
internet-antiddos-v1, с функцией защиты от ddos атак
internet-no-antiddos-v1, с функцией защиты от ddos атак
internet-ipv4-v1 тестовое простанство dev","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":514,"svcOperationCfsParam":"accessIpList","label":"Белый список подключения к ВМ","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?:$|\\[\\s*(?:\"(?:\\d{1,3}\\.){3}\\d{1,3}(?:\\/\\d{1,2})?\"(?:\\s*,\\s*\"(?:\\d{1,3}\\.){3}\\d{1,3}(?:\\/\\d{1,2})?\")*)\\s*\\])$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Формат массива
Каким адресам будет предоставлен доступ до вм

Требует выделенного внешнего IP
Если ничего не передано, то выставлено ["0.0.0.0/0"]","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":520,"svcOperationCfsParam":"accessPortList","label":"По каким портам открыть доступ к ВМ","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"По каким портам открыть доступ к ВМ.
Порты 22, 10050 проставляются автоматически
Пока доступно:
22 - SSH,
80 - HTTP,
443 - HTTPS,
10050 - ZABBIX","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":515,"svcOperationCfsParam":"imageVm","label":"Образ ВМ","dataType":"string","valueList":["RockyLinux_9-16G-cloudinit","Ubuntu_22-20G","Debian_13-20G"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":516,"svcOperationCfsParam":"userLogin","label":"Логин для подключения","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Учётка SSH","man":null,"sort":180,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":517,"svcOperationCfsParam":"userPublicKey","label":"Публичная часть SSH-Ключа","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Публичная часть SSH-Ключа для пользователя","man":null,"sort":190,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":518,"svcOperationCfsParam":"cloudInit","label":"Шаблон Cloud-Init","dataType":"yaml","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Можно передать создание дополнительных пользователей.
На текущий момент не реализовано выполнения в cloud-init, установки пакетов, выполнения команд и записи файлов.","man":null,"sort":200,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":519,"svcOperationCfsParam":"needAddZabbixTemplate","label":"Поставить VM на мониторинг","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Поле позволяет автоматически добавить новый хост в систему мониторинга Zabbix. После добавления вы сможете в реальном времени просматривать все метрики производительности хоста.","man":null,"sort":300,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":12} +{"svcId":28,"svc":"Виртуальная машина","svcShort":"vc_vm_v3","code":"null","operation":"modify","svcOperationId":159,"params":[{"svcOperationCfsParamId":493,"svcOperationCfsParam":"vmCpu","label":"Кол-во ядер","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":64,"minvalue":1,"descr":"шт","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":494,"svcOperationCfsParam":"vmRam","label":"Кол-во ОЗУ","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":256,"minvalue":1,"descr":"Gb","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":495,"svcOperationCfsParam":"vmDisk","label":"Размер дополнительного диска","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?:$|(?:0|[1-9]\\d{0,2}|1\\d{3}|20(?:[0-3]\\d|4[0-8])))$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Основной диск у vm зависит от образа (см. документацию)
Если необходимо дополнительное место для vm, введите колличество Gb в эту форму","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":496,"svcOperationCfsParam":"ipSpaceName","label":"Выделить внешний IP","dataType":"string","valueList":["no-needed","internet-antiddos-v1","internet-no-antiddos-v1","internet-ipv4-v1"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"no-needed, без внешнего ip
internet-antiddos-v1, с функцией защиты от ddos атак
internet-no-antiddos-v1, с функцией защиты от ddos атак
internet-ipv4-v1 тестовое простанство dev","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":497,"svcOperationCfsParam":"accessIpList","label":"Белый список подключения к ВМ","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Формат массива
Каким адресам будет предоставлен доступ до вм

Требует выделенного внешнего IP
Если ничего не передано, то выставлено ["0.0.0.0/0"]","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":498,"svcOperationCfsParam":"accessPortList","label":"По каким портам открыть доступ к ВМ","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Формат массива
По каким портам открыть доступ к ВМ.
Пока доступно:
22 - SSH,
80 - HTTP,
443 - HTTPS,
10050 - ZABBIX","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":499,"svcOperationCfsParam":"needAddZabbixTemplate","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":7} +{"svcId":29,"svc":"Группа датацентров","svcShort":"vcVdcGroup","code":"null","operation":"reconcile","svcOperationId":251,"params":[],"paramCount":0} +{"svcId":29,"svc":"Группа датацентров","svcShort":"vcVdcGroup","code":"null","operation":"create","svcOperationId":191,"params":[{"svcOperationCfsParamId":618,"svcOperationCfsParam":"vdcUid","label":"UUID VDC","dataType":"uuid","valueList":null,"refSvcId":21,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":1} +{"svcId":29,"svc":"Группа датацентров","svcShort":"vcVdcGroup","code":"null","operation":"remove_vdc","svcOperationId":193,"params":[{"svcOperationCfsParamId":620,"svcOperationCfsParam":"vdcName","label":"Какой VDC удалить из группы","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":1} +{"svcId":29,"svc":"Группа датацентров","svcShort":"vcVdcGroup","code":"null","operation":"add_vdc","svcOperationId":192,"params":[{"svcOperationCfsParamId":619,"svcOperationCfsParam":"vdcUid","label":"Какой VDC добавить в группу","dataType":"uuid","valueList":null,"refSvcId":21,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":1} +{"svcId":29,"svc":"Группа датацентров","svcShort":"vcVdcGroup","code":"null","operation":"delete","svcOperationId":195,"params":[],"paramCount":0} +{"svcId":50,"svc":"Nextcloud","svcShort":"nextcloud","code":"null","operation":"create","svcOperationId":16,"params":[{"svcOperationCfsParamId":564,"svcOperationCfsParam":"psqlUid","label":"Кластер услуги k8sPgsql","dataType":"uuid","valueList":null,"refSvcId":90,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":6,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":570,"svcOperationCfsParam":"redisUid","label":"Кластер услуги k8sRedis","dataType":"uuid","valueList":null,"refSvcId":91,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":7,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":21,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Наименование домена. Если будет указан FQDN, то происходят проверки DNS. Если указан поддомен, то будет добавлен в зону services.ngcloud.ru
Можно указать клиентскую DNS-Запись. Важно, чтобы запись смотрела на Ingress кластера","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":569,"svcOperationCfsParam":"appVersion","label":"Версия Nextcloud","dataType":null,"valueList":["32.0.1"],"refSvcId":null,"isRequired":true,"defaultValue":"32.0.1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":99,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1000","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili). 1 ядро = 1000 Mili","man":"Квота ядра пода (Указывается в mili). 1 ядро = 1000 Mili","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":100,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1024","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":1024,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":101,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"2","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":2,"descr":"Квота диска (Указывается в GIGAbytes)
Диск не может быть меньше 2G (!)","man":"Квота диска (Указывается в GIGAbytes)","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":470,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":["1"],"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов
Не может пока быть больше одного, так как нужны SC под RWMany","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":192,"svcOperationCfsParam":"documentServer","label":"Сервер документов","dataType":"string","valueList":["collabora"],"refSvcId":null,"isRequired":true,"defaultValue":"collabora","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбор сервера документов (onlyoffice)/(collabora). onlyoffice пока не доступен
Размер пода collabora:
1.8 ядра. 2Gi ОЗУ","man":"Выбор сервера документов (onlyoffice)/(collabora). onlyoffice пока не доступен","sort":100,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":9} +{"svcId":50,"svc":"Nextcloud","svcShort":"nextcloud","code":"null","operation":"modify","svcOperationId":67,"params":[{"svcOperationCfsParamId":178,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili)","man":"Квота ядра пода (Указывается в mili)","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":179,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":180,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":547,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":["1"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов.
Не может пока быть больше одного, так как нужны SC под RWMany","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":571,"svcOperationCfsParam":"appVersion","label":"Версия Nextcloud","dataType":"string","valueList":["32.0.1"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Нельзя обновляться сразу через несколько версий сразу","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":5} +{"svcId":50,"svc":"Nextcloud","svcShort":"nextcloud","code":"null","operation":"restart","svcOperationId":66,"params":[],"paramCount":0} +{"svcId":50,"svc":"Nextcloud","svcShort":"nextcloud","code":"null","operation":"delete","svcOperationId":17,"params":[],"paramCount":0} +{"svcId":50,"svc":"Nextcloud","svcShort":"nextcloud","code":"null","operation":"resume","svcOperationId":129,"params":[],"paramCount":0} +{"svcId":50,"svc":"Nextcloud","svcShort":"nextcloud","code":"null","operation":"suspend","svcOperationId":128,"params":[],"paramCount":0} +{"svcId":81,"svc":"Apache Superset","svcShort":"superset","code":"null","operation":"create","svcOperationId":12,"params":[{"svcOperationCfsParamId":14,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":109,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":96,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili). 1000 Mili = 1 ядро","man":"Квота ядра пода (Указывается в mili). 1000 Mili = 1 ядро","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":97,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":98,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":227,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":20,"svcOperationCfsParam":"emails","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"testuser1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Учётная запись, которой будут выданы админские права. В формате email [ну не совсем. Для доменных учетных записей - без доменного суффикса]. Обязана находиться в Keycloak. Можно передавать несколько через пробел","man":"Учётная запись, которой будут выданы админские права. В формате email [ну не совсем. Для доменных учетных записей - без доменного суффикса]. Обязана находиться в Keycloak. Можно передавать несколько через пробел","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":7} +{"svcId":81,"svc":"Apache Superset","svcShort":"superset","code":"null","operation":"delete","svcOperationId":13,"params":[],"paramCount":0} +{"svcId":82,"svc":"Container Registry","svcShort":"harbor","code":"null","operation":"create","svcOperationId":14,"params":[{"svcOperationCfsParamId":231,"svcOperationCfsParam":"s3Uid","label":null,"dataType":"uuid","valueList":null,"refSvcId":12,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID экземпляра услуги S3","man":"UUID экземпляра услуги S3","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":16,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":110,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":228,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"100","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро","man":"Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":229,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"200","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":230,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":17,"svcOperationCfsParam":"emails","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"testuser1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Учётная запись, которой будут выданы админские права. Обязана находиться в Keycloak. Можно передавать несколько через пробел","man":"Учётная запись, которой будут выданы админские права. Обязана находиться в Keycloak. Можно передавать несколько через пробел","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":7} +{"svcId":82,"svc":"Container Registry","svcShort":"harbor","code":"null","operation":"delete","svcOperationId":15,"params":[],"paramCount":0} +{"svcId":88,"svc":"k8sZitiController","svcShort":"k8sZitiController","code":"null","operation":"delete","svcOperationId":105,"params":[],"paramCount":0} +{"svcId":88,"svc":"k8sZitiController","svcShort":"k8sZitiController","code":"null","operation":"create","svcOperationId":99,"params":[{"svcOperationCfsParamId":299,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":"provider","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":298,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":294,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"300","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (milicores)","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":295,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":296,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":297,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":6} +{"svcId":89,"svc":"Web-сервер с фреймворком Flask","svcShort":"flask","code":"paas.flsk.0","operation":"delete","svcOperationId":89,"params":[],"paramCount":0} +{"svcId":89,"svc":"Web-сервер с фреймворком Flask","svcShort":"flask","code":"paas.flsk.0","operation":"create","svcOperationId":88,"params":[{"svcOperationCfsParamId":248,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Если будет указан `FQDN`, то происходят проверки DNS на валидность А-записи. А-запись **обязана смотреть на балансировщик** ресурсной платформы.
Если указано имя `в рамках одного октета`, будет добавлено **в публичную днс-зону**","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":249,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Кластер Kubernetes в котором будет развёрнуто приложение","man":"Выбрать платформу из списка

**Если список не отображается**
обратитесь к сервис менеджеру с вопросом предоставления ресурсной платформы","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":250,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"300","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8000,"minvalue":100,"descr":"Пример: `1000`","man":"Указывается в Milicores
`1000` Mili == `1` Ядро","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":251,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"256","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Пример: `2048`","man":"Указывается в Megabytes","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":252,"svcOperationCfsParam":"resourceInstances","label":"Кол-во реплик пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `3`","man":"Балансировка производится между всеми репликами","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":253,"svcOperationCfsParam":"gitPath","label":"URL Проекта (gitpath)","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"https://github.com/Foxyhhd/Baldurs-Gate-test.git","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `https://github.com/myuser/myproject.git`","man":"Проект должен быть публичным","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":255,"svcOperationCfsParam":"healthPath","label":"URL HealthCheck","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `/api/v1/health`","man":"Может быть пустым. Если ничего не передано, проверяется `tcpsocket`
Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":254,"svcOperationCfsParam":"jsonEnv","label":"Переменные окружения пода","dataType":"map","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Структура, которая будет передана как переменные окружения","sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}],"paramCount":8} +{"svcId":89,"svc":"Web-сервер с фреймворком Flask","svcShort":"flask","code":"paas.flsk.0","operation":"suspend","svcOperationId":125,"params":[],"paramCount":0} +{"svcId":89,"svc":"Web-сервер с фреймворком Flask","svcShort":"flask","code":"paas.flsk.0","operation":"modify","svcOperationId":146,"params":[{"svcOperationCfsParamId":451,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8000,"minvalue":100,"descr":"Пример: `1000`","man":"Указывается в Milicores
`1000` Mili == `1` Ядро","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":452,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Пример: `2048`","man":"Указывается в Megabytes","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":453,"svcOperationCfsParam":"resourceInstances","label":"Кол-во реплик пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `3`","man":"Балансировка производится между всеми репликами","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":454,"svcOperationCfsParam":"gitPath","label":"URL Проекта (gitpath)","dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `https://github.com/myuser/myproject.git`","man":"Проект должен быть публичным","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":455,"svcOperationCfsParam":"jsonEnv","label":"Переменные окружения пода","dataType":"map","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Структура, которая будет передана как переменные окружения","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":5} +{"svcId":89,"svc":"Web-сервер с фреймворком Flask","svcShort":"flask","code":"paas.flsk.0","operation":"resume","svcOperationId":145,"params":[],"paramCount":0} +{"svcId":90,"svc":"PostgreSQL","svcShort":"postgres","code":"paas.pg.0","operation":"restart","svcOperationId":54,"params":[],"paramCount":0} +{"svcId":90,"svc":"PostgreSQL","svcShort":"postgres","code":"paas.pg.0","operation":"resume","svcOperationId":114,"params":[],"paramCount":0} +{"svcId":90,"svc":"PostgreSQL","svcShort":"postgres","code":"paas.pg.0","operation":"delete","svcOperationId":20,"params":[{"svcOperationCfsParamId":457,"svcOperationCfsParam":"deleteS3Bucket","label":"Также удалить технический S3 Bucket с бэкапами?","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Также удалить технический S3 Bucket с бэкапами?","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":1} +{"svcId":90,"svc":"PostgreSQL","svcShort":"postgres","code":"paas.pg.0","operation":"modify","svcOperationId":48,"params":[{"svcOperationCfsParamId":93,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (milicores)","man":"Квота ядра пода (milicores)","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":92,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":"Квота памяти пода (MBytes)","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":94,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":91,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":147,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделение белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP для доступа к master","man":"Выделяет внешний IP для доступа к master","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":541,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации VIP master","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster. Пример: `internet-no-antiddos-v1`","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":148,"svcOperationCfsParam":"needExternalAddressSlave","label":"Выделение белого ip для slave ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP для доступа к slave. Действует, если slave в принципе есть","man":"Выделяет внешний IP для доступа к slave. Действует, если slave в принципе есть","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":542,"svcOperationCfsParam":"ipSpaceNameSlave","label":"Имя ipSpace для публикации VIP slave","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP slave. Не может быть пустым, если включен needExternalAddressSlave","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":267,"svcOperationCfsParam":"ext_BACKUP_SCHEDULE","label":"Расписание резервного копирования","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^((((\\d+,)+\\d+|(\\d+(\\/|-|#)\\d+)|(\\d+L?)|(\\*(\\/\\d+)?)|(L(-\\d+)?)|(\\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\\d+(ns|us|µs|ms|s|m|h))+)$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Не обязательный. Время запуска бекапа","sort":90,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":268,"svcOperationCfsParam":"ext_BACKUP_NUM_TO_RETAIN","label":"Количество резервных копий","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":99,"minvalue":1,"descr":null,"man":"Не обязательный. Количество сохраняемых бекапов","sort":100,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":315,"svcOperationCfsParam":"appVersion","label":"Версия PostgreSQL","dataType":"string","valueList":["17","16","15","14","13"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия PostgreSQL. Нельзя опускать вниз","man":null,"sort":110,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":316,"svcOperationCfsParam":"jsonParameters","label":"Параметры postgresql.conf в виде JSON","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":2048,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Массив переменных, более подробнее про настройку можно посмотреть https://www.postgresql.org/docs/current/runtime-config.html","man":null,"sort":120,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":317,"svcOperationCfsParam":"enablePgPoolerMaster","label":"Включить pgPooler для Master","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает pgPooler (на запись). Будет создан новый под","man":null,"sort":130,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":318,"svcOperationCfsParam":"enablePgPoolerSlave","label":"Включить pgPooler для Slave","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает pgPooler (на чтение). Будет создан новый под","man":null,"sort":140,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":319,"svcOperationCfsParam":"allowNoSSL","label":"Выключить sslmode","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"По умолчанию подключение обязательное (sslmode=require). Выставление в true отключит этот параметр","man":null,"sort":150,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":15} +{"svcId":90,"svc":"PostgreSQL","svcShort":"postgres","code":"paas.pg.0","operation":"recovery","svcOperationId":47,"params":[{"svcOperationCfsParamId":131,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":88,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili)
","man":"Квота ядра пода (Указывается в mili)
","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":87,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)
","man":"Квота памяти пода (Указывается в Megabytes)
","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":89,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":86,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети
","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":5} +{"svcId":90,"svc":"PostgreSQL","svcShort":"postgres","code":"paas.pg.0","operation":"create","svcOperationId":19,"params":[{"svcOperationCfsParamId":102,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Кластер Kubernetes, на котором будет развернут экземпляр","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":23,"svcOperationCfsParam":"s3Uid","label":"Услуга S3 для резервных копий.","dataType":"uuid","valueList":null,"refSvcId":12,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Экземпляр (учетная запись) S3 для резервного копирования. Резервное копирование обязательно","man":"Экземпляр (учетная запись) S3 для резервного копирования. Резервное копирование обязательно","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":82,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (milicores)","man":"Квота ядра пода (milicores)","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":81,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":"Квота памяти пода (MBytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":83,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":80,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":"^[1357]$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в кластере. 1,3,5,7","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":145,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделение белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний (белый) IP для доступа к master","man":"Выделяет внешний (белый) IP для доступа к master","sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":337,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации VIP master","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster. Пример: `internet-no-antiddos-v1`","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":146,"svcOperationCfsParam":"needExternalAddressSlave","label":"Выделение белого ip для slave ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний (белый) IP для доступа к slave. Будет работать, если slave в принципе есть","man":"Выделяет внешний (белый) IP для доступа к slave. Будет работать, если slave в принципе есть","sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":338,"svcOperationCfsParam":"ipSpaceNameSlave","label":"Имя ipSpace для публикации VIP slave","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP slave. Не может быть пустым, если включен needExternalAddressSlave","man":null,"sort":100,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":266,"svcOperationCfsParam":"ext_BACKUP_NUM_TO_RETAIN","label":"Количество резервных копий","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"7","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":99,"minvalue":1,"descr":null,"man":"Не обязательный. Количество сохраняемых бекапов","sort":140,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":265,"svcOperationCfsParam":"ext_BACKUP_SCHEDULE","label":"Расписание резервного копирования","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"0 0 * * *","defaultCompute":null,"func":null,"regex":"^((((\\d+,)+\\d+|(\\d+(\\/|-|#)\\d+)|(\\d+L?)|(\\*(\\/\\d+)?)|(L(-\\d+)?)|(\\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\\d+(ns|us|µs|ms|s|m|h))+)$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Не обязательный. Время запуска бекапа","sort":150,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":310,"svcOperationCfsParam":"appVersion","label":"Версия PostgreSQL","dataType":"string","valueList":["17","16","15","14","13"],"refSvcId":null,"isRequired":true,"defaultValue":"17","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия PostgreSQL","man":null,"sort":160,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":311,"svcOperationCfsParam":"jsonParameters","label":"Параметры postgresql.conf в виде JSON","dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"{ \"log_connections\": \"off\", \"log_disconnections\": \"off\" }","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":2048,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Массив переменных, более подробнее про настройку можно посмотреть https://www.postgresql.org/docs/current/runtime-config.html","man":null,"sort":170,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":312,"svcOperationCfsParam":"enablePgPoolerMaster","label":"Включить pgPooler для Master","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает pgPooler (на запись). Будет создан новый под","man":null,"sort":180,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":313,"svcOperationCfsParam":"enablePgPoolerSlave","label":"Включить pgPooler для Slave","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает pgPooler (на чтение). Будет создан новый под","man":null,"sort":190,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":314,"svcOperationCfsParam":"allowNoSSL","label":"Выключить sslmode","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"По умолчанию подключение обязательное (sslmode=require). Выставление в true отключит этот параметр","man":null,"sort":200,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":329,"svcOperationCfsParam":"autoScale","label":"Включить autoScale","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает автоскейлинг PV. При включении параметра необходимо настроить autoScalePercentage и autoScaleTechWindow. Алерт при срабатывании вызывает modify у текущей услуги","man":null,"sort":300,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":330,"svcOperationCfsParam":"autoScalePercentage","label":"На сколько % расширяться диск (мин. 1G)","dataType":"integer > 0","valueList":["10","15","20"],"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Требует включения autoScale. Позволяет указать в процентах расширение от текущего макс объема","man":null,"sort":310,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":331,"svcOperationCfsParam":"autoScaleTechWindow","label":"Тех окно обновления дисков","dataType":"integer >= 0","valueList":["0","5","12","23"],"refSvcId":null,"isRequired":true,"defaultValue":"0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Требует включения autoScale. Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23)","man":null,"sort":320,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":339,"svcOperationCfsParam":"autoScaleQuotaGb","label":"Квота для autoScale","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Квота для autoScale","man":null,"sort":330,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":21} +{"svcId":90,"svc":"PostgreSQL","svcShort":"postgres","code":"paas.pg.0","operation":"suspend","svcOperationId":115,"params":[],"paramCount":0} +{"svcId":90,"svc":"PostgreSQL","svcShort":"postgres","code":"paas.pg.0","operation":"create_user","svcOperationId":241,"params":[{"svcOperationCfsParamId":733,"svcOperationCfsParam":"username","label":"Имя создаваемого пользователя. Используется для подключения к базе и настройки прав.","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":740,"svcOperationCfsParam":"role","label":"Имя создаваемого роли","dataType":"string","valueList":["app_user","ddl_user"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать роль из списка","man":"`app_user` — стандартный пользователь с базовым набором прав
`ddl_user` — пользователь с расширенными правами, включая управление ролями и базами данных","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":2} +{"svcId":90,"svc":"PostgreSQL","svcShort":"postgres","code":"paas.pg.0","operation":"delete_user","svcOperationId":244,"params":[{"svcOperationCfsParamId":739,"svcOperationCfsParam":"username","label":"Имя удаляемого пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `username-admin`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":1} +{"svcId":90,"svc":"PostgreSQL","svcShort":"postgres","code":"paas.pg.0","operation":"create_database","svcOperationId":245,"params":[{"svcOperationCfsParamId":741,"svcOperationCfsParam":"dbName","label":"Имя создаваемой базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":742,"svcOperationCfsParam":"dbOwner","label":"Имя пользователя-владельца базы данных. Должен существовать в кластере","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":2} +{"svcId":90,"svc":"PostgreSQL","svcShort":"postgres","code":"paas.pg.0","operation":"delete_database","svcOperationId":246,"params":[{"svcOperationCfsParamId":743,"svcOperationCfsParam":"dbName","label":"Название удаляемой базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":1} +{"svcId":91,"svc":"Redis","svcShort":"redis","code":"null","operation":"delete","svcOperationId":22,"params":[],"paramCount":0} +{"svcId":91,"svc":"Redis","svcShort":"redis","code":"null","operation":"create","svcOperationId":21,"params":[{"svcOperationCfsParamId":182,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения
","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":112,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1000","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":500,"descr":"Квота ядра пода (Указывается в mili)","man":"Квота ядра пода (Указывается в mili)","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":113,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1024","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":512,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":114,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"30","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":10,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":181,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети. Если выделить больше 1 ноды, будет добавлено дополнительно 3 Sentinel ноды","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":183,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделение белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP для доступа к master","man":"Выделяет внешний IP для доступа к master","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":184,"svcOperationCfsParam":"needExternalAddressSlave","label":"Выделение белого ip для slave ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP для доступа к slave. Будет работать если slave в целом есть","man":"Выделяет внешний IP для доступа к slave. Будет работать если slave в целом есть","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":548,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации VIP master","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":549,"svcOperationCfsParam":"ipSpaceNameSlave","label":"Имя ipSpace для публикации VIP slave","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP slave. Не может быть пустым, если включен needExternalAddressSlave","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":9} +{"svcId":92,"svc":"MongoDB","svcShort":"mongodb","code":"paas.mngo.0","operation":"delete","svcOperationId":190,"params":[],"paramCount":0} +{"svcId":92,"svc":"MongoDB","svcShort":"mongodb","code":"paas.mngo.0","operation":"suspend","svcOperationId":194,"params":[],"paramCount":0} +{"svcId":92,"svc":"MongoDB","svcShort":"mongodb","code":"paas.mngo.0","operation":"create","svcOperationId":37,"params":[{"svcOperationCfsParamId":487,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов в сети","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `2`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":595,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать платформу из списка","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":588,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Mb)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":500,"descr":"Пример: `2048`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":589,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (mCPU)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `1000`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":590,"svcOperationCfsParam":"resourceDisk","label":"Размер диска(Gb)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `20`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":645,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделяет внешний IP для доступа к master","dataType":"boolean","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-брокеру. Пример: `true` или `false`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":646,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}],"paramCount":7} +{"svcId":92,"svc":"MongoDB","svcShort":"mongodb","code":"paas.mngo.0","operation":"modify_user","svcOperationId":200,"params":[{"svcOperationCfsParamId":640,"svcOperationCfsParam":"username","label":"Имя пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":641,"svcOperationCfsParam":"dbName","label":"Имя базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":642,"svcOperationCfsParam":"role","label":"Имя роли","dataType":"string","valueList":["dbOwner","read","readWrite"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":3} +{"svcId":92,"svc":"MongoDB","svcShort":"mongodb","code":"paas.mngo.0","operation":"delete_user","svcOperationId":199,"params":[{"svcOperationCfsParamId":644,"svcOperationCfsParam":"username","label":"Имя пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":1} +{"svcId":92,"svc":"MongoDB","svcShort":"mongodb","code":"paas.mngo.0","operation":"resume","svcOperationId":196,"params":[],"paramCount":0} +{"svcId":92,"svc":"MongoDB","svcShort":"mongodb","code":"paas.mngo.0","operation":"create_user","svcOperationId":198,"params":[{"svcOperationCfsParamId":635,"svcOperationCfsParam":"username","label":"Имя пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":636,"svcOperationCfsParam":"dbName","label":"Имя базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":643,"svcOperationCfsParam":"role","label":"Имя роли","dataType":"string","valueList":["dbOwner","read","readWrite"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":3} +{"svcId":92,"svc":"MongoDB","svcShort":"mongodb","code":"paas.mngo.0","operation":"modify","svcOperationId":201,"params":[{"svcOperationCfsParamId":648,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов в сети","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `2`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":649,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Mb)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `2048`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":650,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (mCPU)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `1000`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":651,"svcOperationCfsParam":"resourceDisk","label":"Размер диска(Gb)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `20`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":652,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделяет внешний IP для доступа к master","dataType":"boolean","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Флаг, определяющий, нужно ли выделять внешний IP для доступа к master. Пример: `true` или `false`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":653,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":6} +{"svcId":93,"svc":"RabbitMQ","svcShort":"rabbitmq","code":"null","operation":"delete","svcOperationId":39,"params":[],"paramCount":0} +{"svcId":93,"svc":"RabbitMQ","svcShort":"rabbitmq","code":"null","operation":"create","svcOperationId":38,"params":[{"svcOperationCfsParamId":119,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать платформу из списка","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":116,"svcOperationCfsParam":"resourceCPU","label":"Квота(millicore) ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1000","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":500,"descr":"Пример: `2000`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":117,"svcOperationCfsParam":"resourceMemory","label":"Квота(megabyte) памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1124","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":512,"descr":"Пример: `2048`","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":118,"svcOperationCfsParam":"resourceDisk","label":"Размер(gigabyte) диска для базы данных","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"30","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":5,"descr":"Пример: `20`","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":224,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `1`","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":225,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделение белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Флаг, определяющий, нужно ли выделять внешний IP для доступа к master. Пример: `true` или `false`","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":543,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Если выделяеться внешний IP для master-node, то поле необходимо заполнить.","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `internet-no-antiddos-v1`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}],"paramCount":7} +{"svcId":93,"svc":"RabbitMQ","svcShort":"rabbitmq","code":"null","operation":"modify","svcOperationId":106,"params":[{"svcOperationCfsParamId":304,"svcOperationCfsParam":"resourceCPU","label":"Квота(millicore) ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":500,"descr":"Пример: `2000`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":306,"svcOperationCfsParam":"resourceDisk","label":"Квота (gigabyte) диска для контейнера","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Пример: `20`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":305,"svcOperationCfsParam":"resourceMemory","label":"Квота(megabyte) памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":512,"descr":"Пример: `2048`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":307,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `1`","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":308,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделение белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний (белый) IP для доступа к master","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":309,"svcOperationCfsParam":"needExternalAddressSlave","label":"Выделение белого ip для slave ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний (белый) IP для доступа к slave","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":545,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Если выделяеться внешний IP для master-node, то поле необходимо заполнить.","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `internet-no-antiddos-v1`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":546,"svcOperationCfsParam":"ipSpaceNameSlave","label":"Если выделяеться внешний IP для slave-node, то поле необходимо заполнить.","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `internet-no-antiddos-v1`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":8} +{"svcId":93,"svc":"RabbitMQ","svcShort":"rabbitmq","code":"null","operation":"resume","svcOperationId":117,"params":[],"paramCount":0} +{"svcId":93,"svc":"RabbitMQ","svcShort":"rabbitmq","code":"null","operation":"suspend","svcOperationId":116,"params":[],"paramCount":0} +{"svcId":94,"svc":"Lucee","svcShort":"lucee","code":"null","operation":"modify","svcOperationId":55,"params":[{"svcOperationCfsParamId":136,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili) 1000Mili = 1 ядро","man":"Квота ядра пода (Указывается в mili)","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":137,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":138,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":135,"svcOperationCfsParam":"jsonEnv","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":2048,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Массив переменных, будут переданы в env приложения","man":"Массив переменных, будут переданы в env приложения","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":133,"svcOperationCfsParam":"gitPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до Git, который будет webroot для сайта","man":"Путь до Git, который будет webroot для сайта","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":134,"svcOperationCfsParam":"healthPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код.","man":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код.","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":264,"svcOperationCfsParam":"appVersion","label":null,"dataType":"string","valueList":["5.4","6.0"],"refSvcId":null,"isRequired":true,"defaultValue":"5.4","defaultCompute":null,"func":null,"regex":"^\\d+(\\.\\d+){1,2}(-[a-zA-Z0-9\\.]+)?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":7} +{"svcId":94,"svc":"Lucee","svcShort":"lucee","code":"null","operation":"redeploy","svcOperationId":53,"params":[{"svcOperationCfsParamId":257,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":1} +{"svcId":94,"svc":"Lucee","svcShort":"lucee","code":"null","operation":"delete","svcOperationId":50,"params":[],"paramCount":0} +{"svcId":94,"svc":"Lucee","svcShort":"lucee","code":"null","operation":"create","svcOperationId":49,"params":[{"svcOperationCfsParamId":103,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":"provider","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":108,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":106,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"300","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (milicores)","man":"Квота ядра пода (milicores)","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":107,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":"Квота памяти пода (MBytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":139,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":104,"svcOperationCfsParam":"gitPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"https://github.com/xahys/testlucee","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до Git, который будет webroot для сайта","man":"Путь до Git, который будет webroot для сайта","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":105,"svcOperationCfsParam":"jsonEnv","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"{ \"param\": \"value\" }","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":2048,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Здесь вы можете задать переменные среды в формате KEY=VALUE. Они будут доступны внутри вашего приложения.","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":132,"svcOperationCfsParam":"healthPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код","man":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код","sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":263,"svcOperationCfsParam":"appVersion","label":"Версия Lucee","dataType":"string","valueList":["5.4","6.0"],"refSvcId":null,"isRequired":true,"defaultValue":"5.4","defaultCompute":null,"func":null,"regex":"^\\d+(\\.\\d+){1,2}(-[a-zA-Z0-9\\.]+)?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия Lucee","man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}],"paramCount":9} +{"svcId":94,"svc":"Lucee","svcShort":"lucee","code":"null","operation":"suspend","svcOperationId":96,"params":[],"paramCount":0} +{"svcId":94,"svc":"Lucee","svcShort":"lucee","code":"null","operation":"resume","svcOperationId":95,"params":[],"paramCount":0} +{"svcId":94,"svc":"Lucee","svcShort":"lucee","code":"null","operation":"restart","svcOperationId":163,"params":[],"paramCount":0} +{"svcId":95,"svc":"NodeJS","svcShort":"nodejs","code":"null","operation":"create","svcOperationId":58,"params":[{"svcOperationCfsParamId":149,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Наименование поддомена, будет добавлено в nodejs.dev.nubes.ru","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":156,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":153,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (milicores). 1000Mili = 1 Ядро","man":"Квота ядра пода (milicores). 1000Mili = 1 Ядро","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":154,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1024","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":"Квота памяти пода (MBytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":155,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":150,"svcOperationCfsParam":"gitPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"https://github.com/xahys/testnode.git","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до Git, который будет webroot для сайта","man":"Путь до Git, который будет webroot для сайта","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":152,"svcOperationCfsParam":"jsonEnv","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Массив переменных, будут переданы в env приложения","man":"Массив переменных, будут переданы в env приложения","sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":151,"svcOperationCfsParam":"healthPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код. Если оставить пустым, healtcheck'а не будет","man":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код. Если оставить пустым, healtcheck'а не будет","sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":270,"svcOperationCfsParam":"appVersion","label":null,"dataType":"string","valueList":["18","20","22","23"],"refSvcId":null,"isRequired":true,"defaultValue":"23","defaultCompute":null,"func":null,"regex":"^(\\d){2}$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия приложения","man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}],"paramCount":9} +{"svcId":95,"svc":"NodeJS","svcShort":"nodejs","code":"null","operation":"delete","svcOperationId":61,"params":[],"paramCount":0} +{"svcId":95,"svc":"NodeJS","svcShort":"nodejs","code":"null","operation":"modify","svcOperationId":59,"params":[{"svcOperationCfsParamId":160,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili) 1000Mili = 1 ядро","man":"Квота ядра пода (Указывается в mili) 1000Mili = 1 ядро","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":161,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":162,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":159,"svcOperationCfsParam":"jsonEnv","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":2048,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Массив переменных, будут переданы в env приложения","man":"Массив переменных, будут переданы в env приложения","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":157,"svcOperationCfsParam":"gitPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до Git, который будет webroot для сайта","man":"Путь до Git, который будет webroot для сайта","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":158,"svcOperationCfsParam":"healthPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код.","man":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код.","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":271,"svcOperationCfsParam":"appVersion","label":null,"dataType":"string","valueList":["18","20","22","23"],"refSvcId":null,"isRequired":true,"defaultValue":"23","defaultCompute":null,"func":null,"regex":"^(\\d){2}$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия приложения","man":"Версия приложения","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}],"paramCount":7} diff --git a/artifacts/api-meta/test/all_params_index.json b/artifacts/api-meta/test/all_params_index.json new file mode 100644 index 0000000..7eced57 --- /dev/null +++ b/artifacts/api-meta/test/all_params_index.json @@ -0,0 +1,222 @@ +{ + "totalOperations": 175, + "totalParams": 477, + "byService": [ + { + "svcId": 1, + "svc": "Болванка", + "operations": 6, + "params": 19 + }, + { + "svcId": 2, + "svc": "Темплейт k8s", + "operations": 5, + "params": 10 + }, + { + "svcId": 12, + "svc": "S3 Object Storage", + "operations": 7, + "params": 8 + }, + { + "svcId": 13, + "svc": "S3 бакет", + "operations": 2, + "params": 7 + }, + { + "svcId": 19, + "svc": "Организация в Cloud Director", + "operations": 6, + "params": 3 + }, + { + "svcId": 20, + "svc": "Организация [DEPRECATED]", + "operations": 4, + "params": 1 + }, + { + "svcId": 21, + "svc": "Виртуальный датацентр (vDC)", + "operations": 6, + "params": 11 + }, + { + "svcId": 22, + "svc": "Сетевой шлюз периметра (Edge)", + "operations": 4, + "params": 9 + }, + { + "svcId": 23, + "svc": "VM в Cloud Director (старый формат) (vc_vm)", + "operations": 5, + "params": 12 + }, + { + "svcId": 25, + "svc": "Публичные IP адреса", + "operations": 3, + "params": 20 + }, + { + "svcId": 26, + "svc": "Виртуальный каталог ВМ (vApp)", + "operations": 4, + "params": 3 + }, + { + "svcId": 27, + "svc": "VM в Cloud Director (vc_vmV2)", + "operations": 5, + "params": 2 + }, + { + "svcId": 28, + "svc": "Виртуальная машина", + "operations": 6, + "params": 32 + }, + { + "svcId": 29, + "svc": "Группа датацентров", + "operations": 5, + "params": 3 + }, + { + "svcId": 50, + "svc": "Nextcloud", + "operations": 6, + "params": 14 + }, + { + "svcId": 81, + "svc": "Apache Superset", + "operations": 2, + "params": 7 + }, + { + "svcId": 82, + "svc": "Container Registry", + "operations": 2, + "params": 7 + }, + { + "svcId": 88, + "svc": "k8sZitiController", + "operations": 2, + "params": 6 + }, + { + "svcId": 89, + "svc": "Web-сервер с фреймворком Flask", + "operations": 5, + "params": 13 + }, + { + "svcId": 90, + "svc": "PostgreSQL", + "operations": 11, + "params": 48 + }, + { + "svcId": 91, + "svc": "Redis", + "operations": 2, + "params": 9 + }, + { + "svcId": 92, + "svc": "MongoDB", + "operations": 8, + "params": 20 + }, + { + "svcId": 93, + "svc": "RabbitMQ", + "operations": 5, + "params": 15 + }, + { + "svcId": 94, + "svc": "Lucee", + "operations": 7, + "params": 17 + }, + { + "svcId": 95, + "svc": "NodeJS", + "operations": 3, + "params": 16 + }, + { + "svcId": 110, + "svc": "DNS зона", + "operations": 2, + "params": 9 + }, + { + "svcId": 111, + "svc": "DNS запись", + "operations": 3, + "params": 6 + }, + { + "svcId": 112, + "svc": "Тенант в Grafana", + "operations": 3, + "params": 2 + }, + { + "svcId": 113, + "svc": "Быстрый старт", + "operations": 1, + "params": 15 + }, + { + "svcId": 115, + "svc": "Mariadb", + "operations": 5, + "params": 26 + }, + { + "svcId": 116, + "svc": "ApacheKafka", + "operations": 11, + "params": 31 + }, + { + "svcId": 117, + "svc": "Nifi", + "operations": 3, + "params": 6 + }, + { + "svcId": 119, + "svc": "Akhq", + "operations": 5, + "params": 7 + }, + { + "svcId": 120, + "svc": "ClickHouse", + "operations": 9, + "params": 36 + }, + { + "svcId": 149, + "svc": "VALO Cloud", + "operations": 5, + "params": 6 + }, + { + "svcId": 150, + "svc": "Kubernetes кластер Штурвал", + "operations": 7, + "params": 21 + } + ] +} diff --git a/artifacts/api-meta/test/anomalies.txt b/artifacts/api-meta/test/anomalies.txt new file mode 100644 index 0000000..56d114f --- /dev/null +++ b/artifacts/api-meta/test/anomalies.txt @@ -0,0 +1,101 @@ +svc=Болванка svcId=1 op=modify opId=92 :: param=durationMs missing fields +svc=Болванка svcId=1 op=modify opId=92 :: param=failAtStart missing fields +svc=Болванка svcId=1 op=modify opId=92 :: param=failInProgress missing fields +svc=Болванка svcId=1 op=modify opId=92 :: param=whereFail missing fields +svc=Болванка svcId=1 op=modify opId=92 :: param=bodymessage missing fields +svc=Болванка svcId=1 op=modify opId=92 :: param=jsonExample missing fields +svc=Болванка svcId=1 op=create opId=18 :: param=durationMs missing fields +svc=Болванка svcId=1 op=create opId=18 :: param=failAtStart missing fields +svc=Болванка svcId=1 op=create opId=18 :: param=failInProgress missing fields +svc=Болванка svcId=1 op=create opId=18 :: param=whereFail missing fields +svc=Болванка svcId=1 op=create opId=18 :: param=bodymessage missing fields +svc=Болванка svcId=1 op=create opId=18 :: param=mapExample missing fields +svc=Болванка svcId=1 op=create opId=18 :: param=jsonExample missing fields +svc=Болванка svcId=1 op=create opId=18 :: param=nestedRefExample missing fields +svc=Болванка svcId=1 op=create opId=18 :: param=mapFixed missing fields +svc=Болванка svcId=1 op=create opId=18 :: param=arrayMapFixedExample missing fields +svc=DNS запись svcId=111 op=modify opId=90 :: param=recordInput missing fields +svc=Тенант в Grafana svcId=112 op=create opId=84 :: param=grafanaOrgName missing fields +svc=Быстрый старт svcId=113 op=create opId=107 :: param=vappName missing fields +svc=Быстрый старт svcId=113 op=create opId=107 :: param=cpuGuaranteed missing fields +svc=Быстрый старт svcId=113 op=create opId=107 :: param=memGuaranteed missing fields +svc=Быстрый старт svcId=113 op=create opId=107 :: param=virtualServicesCount missing fields +svc=Быстрый старт svcId=113 op=create opId=107 :: param=vdcNetworkPool missing fields +svc=Быстрый старт svcId=113 op=create opId=107 :: param=vdcProviderGateway missing fields +svc=Mariadb svcId=115 op=modify opId=142 :: param=resourceCPU missing fields +svc=Mariadb svcId=115 op=modify opId=142 :: param=resourceMemory missing fields +svc=Mariadb svcId=115 op=modify opId=142 :: param=resourceInstances missing fields +svc=Mariadb svcId=115 op=modify opId=142 :: param=resourceDisk missing fields +svc=Mariadb svcId=115 op=modify opId=142 :: param=needExternalAddressMaster missing fields +svc=Mariadb svcId=115 op=modify opId=142 :: param=ipSpaceNameMaster missing fields +svc=Mariadb svcId=115 op=modify opId=142 :: param=ext_BACKUP_SCHEDULE missing fields +svc=Mariadb svcId=115 op=modify opId=142 :: param=autoScale missing fields +svc=Mariadb svcId=115 op=modify opId=142 :: param=autoScalePercentage missing fields +svc=Mariadb svcId=115 op=modify opId=142 :: param=autoScaleTechWindow missing fields +svc=Mariadb svcId=115 op=modify opId=142 :: param=autoScaleQuotaGb missing fields +svc=ApacheKafka svcId=116 op=modify opId=162 :: param=resourceCPU missing fields +svc=ApacheKafka svcId=116 op=modify_topic opId=166 :: param=replicas missing fields +svc=ApacheKafka svcId=116 op=modify_topic opId=166 :: param=partitions missing fields +svc=S3 Object Storage svcId=12 op=create_sub_user opId=6 :: param=subUserName missing fields +svc=S3 Object Storage svcId=12 op=create_sub_user opId=6 :: param=subUserAccess missing fields +svc=S3 Object Storage svcId=12 op=create opId=1 :: param=resourceRealm missing fields +svc=S3 Object Storage svcId=12 op=delete_sub_user opId=7 :: param=subUserName missing fields +svc=S3 Object Storage svcId=12 op=modify opId=4 :: param=maxSizeGbPerUser missing fields +svc=S3 Object Storage svcId=12 op=modify opId=4 :: param=maxObjectsPerBucket missing fields +svc=S3 Object Storage svcId=12 op=modify opId=4 :: param=maxBucketsPerUser missing fields +svc=ClickHouse svcId=120 op=delete_user opId=187 :: param=username missing fields +svc=S3 бакет svcId=13 op=create opId=51 :: param=maxSize missing fields +svc=S3 бакет svcId=13 op=create opId=51 :: param=readAll missing fields +svc=S3 бакет svcId=13 op=create opId=51 :: param=listAll missing fields +svc=S3 бакет svcId=13 op=create opId=51 :: param=corsAll missing fields +svc=Сетевой шлюз периметра (Edge) svcId=22 op=modify opId=111 :: param=virtualServicesCount missing fields +svc=VM в Cloud Director (старый формат) (vc_vm) svcId=23 op=modify opId=68 :: param=accessIpList missing fields +svc=VM в Cloud Director (старый формат) (vc_vm) svcId=23 op=create opId=26 :: param=templateName missing fields +svc=VM в Cloud Director (старый формат) (vc_vm) svcId=23 op=create opId=26 :: param=accessIpList missing fields +svc=VM в Cloud Director (старый формат) (vc_vm) svcId=23 op=create opId=26 :: param=ipSpaceName missing fields +svc=Публичные IP адреса svcId=25 op=create opId=56 :: param=serviceUid missing fields +svc=Публичные IP адреса svcId=25 op=create opId=56 :: param=ipSpaceName missing fields +svc=Публичные IP адреса svcId=25 op=create opId=56 :: param=dnatCreate missing fields +svc=Публичные IP адреса svcId=25 op=create opId=56 :: param=snatCreate missing fields +svc=Публичные IP адреса svcId=25 op=create opId=56 :: param=internalPortAccess missing fields +svc=Публичные IP адреса svcId=25 op=create opId=56 :: param=internalAddrAccess missing fields +svc=Публичные IP адреса svcId=25 op=create opId=56 :: param=fromServiceNamespace missing fields +svc=Публичные IP адреса svcId=25 op=create opId=56 :: param=fromServiceCloudEdgeName missing fields +svc=Публичные IP адреса svcId=25 op=create opId=56 :: param=fromServiceCloudVdcName missing fields +svc=Публичные IP адреса svcId=25 op=create opId=56 :: param=fromServiceCloudOrgName missing fields +svc=Публичные IP адреса svcId=25 op=create opId=56 :: param=fromServiceCloudVmwareUrl missing fields +svc=Публичные IP адреса svcId=25 op=create opId=56 :: param=fromServiceCloudEdgeScope missing fields +svc=Публичные IP адреса svcId=25 op=create opId=56 :: param=fromServiceVdcGroupName missing fields +svc=Публичные IP адреса svcId=25 op=create opId=56 :: param=resourceRealm missing fields +svc=Публичные IP адреса svcId=25 op=modify opId=197 :: param=serviceUid missing fields +svc=Публичные IP адреса svcId=25 op=modify opId=197 :: param=ipSpaceName missing fields +svc=Публичные IP адреса svcId=25 op=modify opId=197 :: param=dnatCreate missing fields +svc=Публичные IP адреса svcId=25 op=modify opId=197 :: param=snatCreate missing fields +svc=Публичные IP адреса svcId=25 op=modify opId=197 :: param=internalPortAccess missing fields +svc=Публичные IP адреса svcId=25 op=modify opId=197 :: param=internalAddrAccess missing fields +svc=VM в Cloud Director (vc_vmV2) svcId=27 op=create opId=100 :: param=serverListJson missing fields +svc=VM в Cloud Director (vc_vmV2) svcId=27 op=modify opId=104 :: param=serverListJson missing fields +svc=Виртуальная машина svcId=28 op=create opId=132 :: param=userLogin missing fields +svc=Виртуальная машина svcId=28 op=create opId=132 :: param=needAddZabbixTemplate missing fields +svc=Виртуальная машина svcId=28 op=modify opId=159 :: param=needAddZabbixTemplate missing fields +svc=Nextcloud svcId=50 op=create opId=16 :: param=appVersion missing fields +svc=Apache Superset svcId=81 op=create opId=12 :: param=emails missing fields +svc=Container Registry svcId=82 op=create opId=14 :: param=s3Uid missing fields +svc=Container Registry svcId=82 op=create opId=14 :: param=emails missing fields +svc=Web-сервер с фреймворком Flask svcId=89 op=modify opId=146 :: param=gitPath missing fields +svc=PostgreSQL svcId=90 op=create opId=19 :: param=resourceDisk missing fields +svc=Lucee svcId=94 op=modify opId=55 :: param=jsonEnv missing fields +svc=Lucee svcId=94 op=modify opId=55 :: param=gitPath missing fields +svc=Lucee svcId=94 op=modify opId=55 :: param=healthPath missing fields +svc=Lucee svcId=94 op=modify opId=55 :: param=appVersion missing fields +svc=Lucee svcId=94 op=create opId=49 :: param=gitPath missing fields +svc=Lucee svcId=94 op=create opId=49 :: param=jsonEnv missing fields +svc=Lucee svcId=94 op=create opId=49 :: param=healthPath missing fields +svc=NodeJS svcId=95 op=create opId=58 :: param=gitPath missing fields +svc=NodeJS svcId=95 op=create opId=58 :: param=jsonEnv missing fields +svc=NodeJS svcId=95 op=create opId=58 :: param=healthPath missing fields +svc=NodeJS svcId=95 op=create opId=58 :: param=appVersion missing fields +svc=NodeJS svcId=95 op=modify opId=59 :: param=jsonEnv missing fields +svc=NodeJS svcId=95 op=modify opId=59 :: param=gitPath missing fields +svc=NodeJS svcId=95 op=modify opId=59 :: param=healthPath missing fields +svc=NodeJS svcId=95 op=modify opId=59 :: param=appVersion missing fields diff --git a/artifacts/api-meta/test/operations/1.list b/artifacts/api-meta/test/operations/1.list new file mode 100644 index 0000000..ed6a932 --- /dev/null +++ b/artifacts/api-meta/test/operations/1.list @@ -0,0 +1,6 @@ +delete 71 +modify 92 +suspend 93 +resume 94 +create 18 +redeploy 240 diff --git a/artifacts/api-meta/test/operations/1/18.json b/artifacts/api-meta/test/operations/1/18.json new file mode 100644 index 0000000..966cf1a --- /dev/null +++ b/artifacts/api-meta/test/operations/1/18.json @@ -0,0 +1 @@ +{"queryDurationMs":46,"svcOperation":{"svcOperationId":18,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/dummy/job/Service/job/create/view/tags/job/1.0.2/buildWithParameters","descr":"Это описание операции CREATE сервиса Болванка","man":"Это мануал к операции CREATE сервиса Болванка","cfsParams":[{"svcOperationCfsParamId":242,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование ресурсной платформы для подключения","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":198,"svcOperationCfsParam":"durationMs","label":null,"dataType":"integer >= 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"перед завершением подождать (sleep) столько миллисекунд","man":"перед завершением подождать (sleep) столько миллисекунд","sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":199,"svcOperationCfsParam":"failAtStart","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"если true, завершить джоб, ничего не записывая в cmdb","man":"**Операция не будет завершена**
Она будет в постоянном статусе PENDING, однако в Jenkins Job завершится с ошибкой","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":200,"svcOperationCfsParam":"failInProgress","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"если true, корректно начать выполнение джоба, но в процессе завершить аварийно, ничего не записывая в cmdb","man":"если true, корректно начать выполнение джоба, но в процессе завершить аварийно, ничего не записывая в cmdb","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":201,"svcOperationCfsParam":"whereFail","label":null,"dataType":"integer > 0","valueList":["1","2","3"],"refSvcId":null,"isRequired":false,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write","man":"принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":286,"svcOperationCfsParam":"bodymessage","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Дата, уходящая в Vault","man":"Дата, уходящая в Vault","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":321,"svcOperationCfsParam":"mapExample","label":null,"dataType":"map","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":322,"svcOperationCfsParam":"jsonExample","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Для тестирования интерфейса","man":"Для тестирования интерфейса. Сюда можно писать корректный json","sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":396,"svcOperationCfsParam":"nestedRefExample","label":null,"dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":447,"svcOperationCfsParam":"yamlExample","label":"Пример yaml","dataType":"yaml","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":647,"svcOperationCfsParam":"mapFixed","label":null,"dataType":"map-fixed","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Новый тип поля","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":654,"svcOperationCfsParam":"arrayMapFixedExample","label":null,"dataType":"array-map-fixed","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Array of map-fixed","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":47} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/1/240.json b/artifacts/api-meta/test/operations/1/240.json new file mode 100644 index 0000000..6b95061 --- /dev/null +++ b/artifacts/api-meta/test/operations/1/240.json @@ -0,0 +1 @@ +{"queryDurationMs":46,"svcOperation":{"svcOperationId":240,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/dummy/job/Service/job/redeploy/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":46} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/1/71.json b/artifacts/api-meta/test/operations/1/71.json new file mode 100644 index 0000000..29ec598 --- /dev/null +++ b/artifacts/api-meta/test/operations/1/71.json @@ -0,0 +1 @@ +{"queryDurationMs":46,"svcOperation":{"svcOperationId":71,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/dummy/job/Service/job/delete/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":46} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/1/92.json b/artifacts/api-meta/test/operations/1/92.json new file mode 100644 index 0000000..326b3ed --- /dev/null +++ b/artifacts/api-meta/test/operations/1/92.json @@ -0,0 +1 @@ +{"queryDurationMs":46,"svcOperation":{"svcOperationId":92,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/dummy/job/Service/job/modify/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":287,"svcOperationCfsParam":"durationMs","label":null,"dataType":"integer >= 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"перед завершением подождать (sleep) столько миллисекунд","man":"перед завершением подождать (sleep) столько миллисекунд","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":288,"svcOperationCfsParam":"failAtStart","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"если true, завершить джоб, ничего не записывая в cmdb","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":289,"svcOperationCfsParam":"failInProgress","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"если true, корректно начать выполнение джоба, но в процессе завершить аварийно, ничего не записывая в cmdb","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":290,"svcOperationCfsParam":"whereFail","label":null,"dataType":"integer > 0","valueList":["1","2","3"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write","man":"принимает 1,2,3. Работает с failInProgress. 1 - упасть в prepare. 2 - упасть внутри блока Data fill. 3 - упасть после vault write","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":291,"svcOperationCfsParam":"bodymessage","label":null,"dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Дата, уходящая в Vault","man":"Дата, уходящая в Vault","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":373,"svcOperationCfsParam":"mapExample","label":"mapExample","dataType":"map","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"{}","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":374,"svcOperationCfsParam":"jsonExample","label":"jsonExample","dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":47} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/1/93.json b/artifacts/api-meta/test/operations/1/93.json new file mode 100644 index 0000000..c7cd381 --- /dev/null +++ b/artifacts/api-meta/test/operations/1/93.json @@ -0,0 +1 @@ +{"queryDurationMs":46,"svcOperation":{"svcOperationId":93,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/dummy/job/Service/job/suspend/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":46} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/1/94.json b/artifacts/api-meta/test/operations/1/94.json new file mode 100644 index 0000000..fea3c00 --- /dev/null +++ b/artifacts/api-meta/test/operations/1/94.json @@ -0,0 +1 @@ +{"queryDurationMs":105,"svcOperation":{"svcOperationId":94,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/dummy/job/Service/job/resume/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":105} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/100.list b/artifacts/api-meta/test/operations/100.list new file mode 100644 index 0000000..e69de29 diff --git a/artifacts/api-meta/test/operations/110.list b/artifacts/api-meta/test/operations/110.list new file mode 100644 index 0000000..232a67c --- /dev/null +++ b/artifacts/api-meta/test/operations/110.list @@ -0,0 +1,2 @@ +delete 44 +create 43 diff --git a/artifacts/api-meta/test/operations/110/43.json b/artifacts/api-meta/test/operations/110/43.json new file mode 100644 index 0000000..9b62b51 --- /dev/null +++ b/artifacts/api-meta/test/operations/110/43.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":43,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/powerdns/job/Zones/job/create/view/tags/job/1.0.3/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":66,"svcOperationCfsParam":"zoneEmail","label":"Контактный e-mail","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Контактный e-mail","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":67,"svcOperationCfsParam":"zoneName","label":"Имя зоны","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^([a-z0-9-]+\\.)+[a-z0-9-]+$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя зоны","man":"Имя зоны","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":68,"svcOperationCfsParam":"zoneKind","label":"Тип зоны","dataType":"string","valueList":["NATIVE","SLAVE"],"refSvcId":null,"isRequired":true,"defaultValue":"NATIVE","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Тип зоны","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":69,"svcOperationCfsParam":"zoneMastersForSlave","label":"Мастер-сервера (kind: SLAVE)","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Использовать если выбран тип SLAVE. IP адреса в формате через пробел для настройки Master-серверов","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":70,"svcOperationCfsParam":"zoneTimeToRefresh","label":"Time To Refresh","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"86400","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Время ожидания ответа вторичного DNS перед запросом SOA-записи с первичных серверов","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":71,"svcOperationCfsParam":"zoneTimeToRetry","label":"Time To Retry","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"7200","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Время в течение которого сервер повторно попробует синхронизировать информацию с первичных DNS-серверов","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":72,"svcOperationCfsParam":"zoneTimeToExpire","label":"Time To Expire","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"3600000","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Время в течение которого вторичный DNS будет пытаться завершить синхронизацию зоны с первичным","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":73,"svcOperationCfsParam":"zoneTimeToLive","label":"Time To Live","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"86400","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Время, в течение которого информация будет кешироваться другими DNS-серверами","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":284,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/110/44.json b/artifacts/api-meta/test/operations/110/44.json new file mode 100644 index 0000000..afccb8d --- /dev/null +++ b/artifacts/api-meta/test/operations/110/44.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":44,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/powerdns/job/Zones/job/delete/view/tags/job/1.0.3/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/111.list b/artifacts/api-meta/test/operations/111.list new file mode 100644 index 0000000..6dff5c9 --- /dev/null +++ b/artifacts/api-meta/test/operations/111.list @@ -0,0 +1,3 @@ +create 45 +modify 90 +delete 46 diff --git a/artifacts/api-meta/test/operations/111/45.json b/artifacts/api-meta/test/operations/111/45.json new file mode 100644 index 0000000..e600865 --- /dev/null +++ b/artifacts/api-meta/test/operations/111/45.json @@ -0,0 +1 @@ +{"queryDurationMs":44,"svcOperation":{"svcOperationId":45,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/powerdns/job/Records/job/create/view/tags/job/1.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":75,"svcOperationCfsParam":"zoneUid","label":"UUID Зоны","dataType":"uuid","valueList":null,"refSvcId":110,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID экземпляра услуги DNS-зоны","man":"UUID экземпляра услуги DNS-зоны","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":76,"svcOperationCfsParam":"recordType","label":"Тип DNS-записи","dataType":"string","valueList":["A","AAAA","CNAME","MX","PTR","SOA","SRV","TXT","LUA","NS","SSHFP"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Тип DNS-записи","man":"Тип DNS-записи","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":77,"svcOperationCfsParam":"recordName","label":"Имя записи","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":"parent","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя записи. Имя зоны в конце проставляется автоматически","man":"Имя записи. Имя зоны в конце проставляется автоматически","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":78,"svcOperationCfsParam":"recordInput","label":"Значение записи","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Значение. Необходима валидация, в зависимости от типа записи. Должно быть заменено на UUID-внешнийIP","man":"Значение. Необходима валидация, в зависимости от типа записи. Должно быть заменено на UUID-внешнийIP","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":450,"svcOperationCfsParam":"recordTTL","label":"TTL записи (в секундах)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"3600","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":604800,"minvalue":30,"descr":"Time-to-Leave записи. Раз в какое время запись будет обновлена","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":46} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/111/46.json b/artifacts/api-meta/test/operations/111/46.json new file mode 100644 index 0000000..194edb0 --- /dev/null +++ b/artifacts/api-meta/test/operations/111/46.json @@ -0,0 +1 @@ +{"queryDurationMs":61,"svcOperation":{"svcOperationId":46,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/powerdns/job/Records/job/delete/view/tags/job/1.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":61} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/111/90.json b/artifacts/api-meta/test/operations/111/90.json new file mode 100644 index 0000000..e1c000c --- /dev/null +++ b/artifacts/api-meta/test/operations/111/90.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":90,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/powerdns/job/Records/job/modify/view/tags/job/1.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":256,"svcOperationCfsParam":"recordInput","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Запись. Необходима валидация, в зависимости от типа записи. Должно быть заменено на UUID-внешнийIP","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/112.list b/artifacts/api-meta/test/operations/112.list new file mode 100644 index 0000000..79b614c --- /dev/null +++ b/artifacts/api-meta/test/operations/112.list @@ -0,0 +1,3 @@ +modify 87 +create 84 +delete 86 diff --git a/artifacts/api-meta/test/operations/112/84.json b/artifacts/api-meta/test/operations/112/84.json new file mode 100644 index 0000000..2d700e1 --- /dev/null +++ b/artifacts/api-meta/test/operations/112/84.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":84,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/grafana/job/Tenant/job/create/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":239,"svcOperationCfsParam":"grafanaOrgName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^WZ[\\d]+$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"WZ-Код клиента","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":240,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/112/86.json b/artifacts/api-meta/test/operations/112/86.json new file mode 100644 index 0000000..9b2d401 --- /dev/null +++ b/artifacts/api-meta/test/operations/112/86.json @@ -0,0 +1 @@ +{"queryDurationMs":46,"svcOperation":{"svcOperationId":86,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/grafana/job/Tenant/job/delete/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":46} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/112/87.json b/artifacts/api-meta/test/operations/112/87.json new file mode 100644 index 0000000..889cb07 --- /dev/null +++ b/artifacts/api-meta/test/operations/112/87.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":87,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/grafana/job/Tenant/job/modify/view/tags/job/0.0.7/buildWithParameters","descr":"Просто удаляет все текущие датасоурсы и ставит их заново
Полезно, когда нужно "ресетнуть" / "добавить"","man":"Просто удаляет все текущие датасоурсы и ставит их заново
Полезно, когда нужно "ресетнуть" / "добавить"","cfsParams":[]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/113.list b/artifacts/api-meta/test/operations/113.list new file mode 100644 index 0000000..3be4518 --- /dev/null +++ b/artifacts/api-meta/test/operations/113.list @@ -0,0 +1 @@ +create 107 diff --git a/artifacts/api-meta/test/operations/113/107.json b/artifacts/api-meta/test/operations/113/107.json new file mode 100644 index 0000000..36b6a85 --- /dev/null +++ b/artifacts/api-meta/test/operations/113/107.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svcOperation":{"svcOperationId":107,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Complex/job/create/view/tags/job/0.0.5/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":332,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование ресурсной платформы","sort":1,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":334,"svcOperationCfsParam":"vappName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя vApp","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":401,"svcOperationCfsParam":"cpuGuaranteed","label":null,"dataType":"integer > 0","valueList":["20","50","80"],"refSvcId":null,"isRequired":true,"defaultValue":"20","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":566,"svcOperationCfsParam":"cpuAllocated","label":"Сколько аллоцировать на VDC ЯДЕР","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1,"descr":"шт","man":null,"sort":21,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":402,"svcOperationCfsParam":"memGuaranteed","label":null,"dataType":"integer > 0","valueList":["20","50","80"],"refSvcId":null,"isRequired":true,"defaultValue":"20","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":567,"svcOperationCfsParam":"memAllocated","label":"Сколько аллоцировать на VDC ОЗУ","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1,"descr":"gb","man":null,"sort":31,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":404,"svcOperationCfsParam":"needExternalAddressSNAT","label":"Выделить VIP для SNAT","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP на Edge. Используется для SNAT всего трафика","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":405,"svcOperationCfsParam":"needEnableAVI","label":"Включить ALB","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает AVI в Cloud Director","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":403,"svcOperationCfsParam":"segroupName","label":"Наименование segroup","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"SEGROUP-SANDBOX-CL1-SHARED-01","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Наименование segroup, в котором будут выделяться пулы на AVI","man":null,"sort":100,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":359,"svcOperationCfsParam":"virtualServicesCount","label":"Кол-во VS на AVI","dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4,"minvalue":1,"descr":"Кол-во виртуальных сервисов, которые выделяются на AVI. Во избежании коллапса пока выделяется до 4","man":null,"sort":110,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":400,"svcOperationCfsParam":"vdcNetworkPool","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"nsxt-sandbox-geneve-np","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":120,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":360,"svcOperationCfsParam":"ipSpaceName","label":"ip Space для VIP","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"internet-ipv4-v1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ip Space для внешнего IP. Целесообразнее брать самый дешёвый, так как это vip для исходящего трафика. Необходимо задавать если включен needExternalAddressSNAT","man":null,"sort":130,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":568,"svcOperationCfsParam":"vIPCount","label":"Кол-во зарезервированных внешних Ip","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":20,"minvalue":0,"descr":"ш","man":null,"sort":131,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":358,"svcOperationCfsParam":"vdcProviderGateway","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"sandbox-v1cl1-pvdc","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Взять из свойств ресурсной платформы.
Путь .vcd.providerVdc - взять KEY

providerGateway Cloud Director. Влияет ресурсы будут предоставлены. Является полем (List<String>) в свойствах рес. платформы ЛК, но сам параметр передаётся только как один String","man":null,"sort":200,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":399,"svcOperationCfsParam":"storageConfig","label":"Конфигурация Storage","dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[{\"name\": \"\", \"size\": 1024}]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Описывается как массив объектов, где описывается имя политики и её размер","man":null,"sort":210,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/114.list b/artifacts/api-meta/test/operations/114.list new file mode 100644 index 0000000..e69de29 diff --git a/artifacts/api-meta/test/operations/115.list b/artifacts/api-meta/test/operations/115.list new file mode 100644 index 0000000..aebd183 --- /dev/null +++ b/artifacts/api-meta/test/operations/115.list @@ -0,0 +1,5 @@ +modify 142 +suspend 140 +resume 141 +delete 139 +create 138 diff --git a/artifacts/api-meta/test/operations/115/138.json b/artifacts/api-meta/test/operations/115/138.json new file mode 100644 index 0000000..baf040a --- /dev/null +++ b/artifacts/api-meta/test/operations/115/138.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":138,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Mariadb/job/create/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":422,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":459,"svcOperationCfsParam":"s3Uid","label":"Услуга S3 для резервных копий","dataType":"uuid","valueList":null,"refSvcId":12,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Экземпляр (учетная запись) S3 для резервного копирования. Резервное копирование обязательно","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":424,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":500,"descr":"Квота ядра пода (milicores)","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":425,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1024","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":1024,"descr":"Квота памяти пода (MBytes)","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":426,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":427,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":428,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделение белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний (белый) IP для доступа к master","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":429,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации VIP master","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":430,"svcOperationCfsParam":"ext_BACKUP_SCHEDULE","label":"Расписание резервного копирования","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"0 * * * *","defaultCompute":null,"func":null,"regex":"^(\\*|(\\d+|\\*\\/\\d+|\\d+(,\\d+)*))\\s\\*\\s\\*\\s\\*\\s\\*$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Не обязательный. Время запуска бекапа","man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":431,"svcOperationCfsParam":"appVersion","label":"Версия MySQL","dataType":"string","valueList":["8.4.0","9.4.0"],"refSvcId":null,"isRequired":true,"defaultValue":"9.4.0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия MySQL","man":null,"sort":100,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":432,"svcOperationCfsParam":"autoScale","label":"Включить autoScale","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает автоскейлинг PV. При включении параметра необходимо настроить autoScalePercentage и autoScaleTechWindow. Алерт при срабатывании вызывает modify у текущей услуги","man":null,"sort":310,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":433,"svcOperationCfsParam":"autoScalePercentage","label":"На сколько % расширяться диск (мин. 1G)","dataType":"integer > 0","valueList":["10","15","20"],"refSvcId":null,"isRequired":false,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Требует включения autoScale. Позволяет указать в процентах расширение от текущего макс объема","man":null,"sort":320,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":434,"svcOperationCfsParam":"autoScaleTechWindow","label":"Тех окно обновления дисков","dataType":"integer >= 0","valueList":["0","5","12","23"],"refSvcId":null,"isRequired":false,"defaultValue":"0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Требует включения autoScale. Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23)","man":null,"sort":330,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":435,"svcOperationCfsParam":"autoScaleQuotaGb","label":"Квота для autoScale","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Квота для autoScale","man":null,"sort":340,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/115/139.json b/artifacts/api-meta/test/operations/115/139.json new file mode 100644 index 0000000..b7bb0f5 --- /dev/null +++ b/artifacts/api-meta/test/operations/115/139.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":139,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Mariadb/job/delete/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":456,"svcOperationCfsParam":"deleteS3Bucket","label":"Также удалить технический S3 Bucket с бэкапами?","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Также удалить технический S3 Bucket с бэкапами?","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/115/140.json b/artifacts/api-meta/test/operations/115/140.json new file mode 100644 index 0000000..92e1c30 --- /dev/null +++ b/artifacts/api-meta/test/operations/115/140.json @@ -0,0 +1 @@ +{"queryDurationMs":74,"svcOperation":{"svcOperationId":140,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Mariadb/job/suspend/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":74} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/115/141.json b/artifacts/api-meta/test/operations/115/141.json new file mode 100644 index 0000000..2b1b0b8 --- /dev/null +++ b/artifacts/api-meta/test/operations/115/141.json @@ -0,0 +1 @@ +{"queryDurationMs":47,"svcOperation":{"svcOperationId":141,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Mariadb/job/resume/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":47} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/115/142.json b/artifacts/api-meta/test/operations/115/142.json new file mode 100644 index 0000000..043e7a9 --- /dev/null +++ b/artifacts/api-meta/test/operations/115/142.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":142,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Mariadb/job/modify/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":436,"svcOperationCfsParam":"resourceCPU","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":437,"svcOperationCfsParam":"resourceMemory","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":438,"svcOperationCfsParam":"resourceInstances","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":439,"svcOperationCfsParam":"resourceDisk","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":440,"svcOperationCfsParam":"needExternalAddressMaster","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":441,"svcOperationCfsParam":"ipSpaceNameMaster","label":null,"dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":442,"svcOperationCfsParam":"ext_BACKUP_SCHEDULE","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":443,"svcOperationCfsParam":"autoScale","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":444,"svcOperationCfsParam":"autoScalePercentage","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":445,"svcOperationCfsParam":"autoScaleTechWindow","label":null,"dataType":"integer >= 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":446,"svcOperationCfsParam":"autoScaleQuotaGb","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/116.list b/artifacts/api-meta/test/operations/116.list new file mode 100644 index 0000000..8342261 --- /dev/null +++ b/artifacts/api-meta/test/operations/116.list @@ -0,0 +1,11 @@ +delete 149 +delete_topic 167 +resume 161 +create_user 168 +delete_user 170 +suspend 160 +modify 162 +modify_user 169 +modify_topic 166 +create 148 +create_topic 165 diff --git a/artifacts/api-meta/test/operations/116/148.json b/artifacts/api-meta/test/operations/116/148.json new file mode 100644 index 0000000..766983f --- /dev/null +++ b/artifacts/api-meta/test/operations/116/148.json @@ -0,0 +1 @@ +{"queryDurationMs":47,"svcOperation":{"svcOperationId":148,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Kafka/job/create/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":469,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать платформу из списка","man":null,"sort":5,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":461,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов в сети","dataType":"integer > 0","valueList":["1","2","3","4","5"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1,"descr":"Пример: `2`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":462,"svcOperationCfsParam":"resourceMemory","label":"Квота(megabyte) памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1000,"descr":"Пример: `2048`","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":463,"svcOperationCfsParam":"resourceCPU","label":"Квота(millicore ) ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1000,"descr":"Пример: `2000`","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":464,"svcOperationCfsParam":"resourceDisk","label":"Размер(gigabyte) диска для базы данных","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `20`","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":465,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделяет внешний IP для доступа к master","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-брокеру. Пример: `true` или `false`","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":466,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации внешнего IP","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/116/149.json b/artifacts/api-meta/test/operations/116/149.json new file mode 100644 index 0000000..6ee7b14 --- /dev/null +++ b/artifacts/api-meta/test/operations/116/149.json @@ -0,0 +1 @@ +{"queryDurationMs":47,"svcOperation":{"svcOperationId":149,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Kafka/job/delete/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":47} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/116/160.json b/artifacts/api-meta/test/operations/116/160.json new file mode 100644 index 0000000..e5b7de0 --- /dev/null +++ b/artifacts/api-meta/test/operations/116/160.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":160,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Kafka/job/suspend/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/116/161.json b/artifacts/api-meta/test/operations/116/161.json new file mode 100644 index 0000000..286c327 --- /dev/null +++ b/artifacts/api-meta/test/operations/116/161.json @@ -0,0 +1 @@ +{"queryDurationMs":44,"svcOperation":{"svcOperationId":161,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Kafka/job/resume/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":44} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/116/162.json b/artifacts/api-meta/test/operations/116/162.json new file mode 100644 index 0000000..ffa131f --- /dev/null +++ b/artifacts/api-meta/test/operations/116/162.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":162,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Kafka/job/modify/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":501,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов в сети","dataType":"integer > 0","valueList":["1","2","3","4","5"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `2`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":502,"svcOperationCfsParam":"resourceMemory","label":"Квота(megabyte) памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1000,"descr":"Пример: `2048`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":503,"svcOperationCfsParam":"resourceCPU","label":"Квота(millicore ) ядра пода","dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1000,"descr":"Пример: `2000`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":504,"svcOperationCfsParam":"resourceDisk","label":"Размер(gigabyte) диска для базы данных","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `20`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":505,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделяет внешний IP для доступа к master.","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-брокеру. Пример: `true` или `false`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":506,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации внешнего IP","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/116/165.json b/artifacts/api-meta/test/operations/116/165.json new file mode 100644 index 0000000..06ad52d --- /dev/null +++ b/artifacts/api-meta/test/operations/116/165.json @@ -0,0 +1 @@ +{"queryDurationMs":43,"svcOperation":{"svcOperationId":165,"operation":"create_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Kafka/job/create_topic/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"# Инструкция по управлению топиками Apache Kafka через платформу

## 1. Общая информация

---

Топик — это основная сущность в Apache Kafka, предназначенная для приёма сообщений от продюсеров и передачи их консюмерам.
Платформа позволяет создавать, удалять и изменять параметры топиков без прямого доступа к брокерам, обеспечивая удобное управление через интерфейс или API.

---

## Доступные операции

- **create_topic** — Создание топика
- **modify_topic** — Модификация топика
- **delete_topic** — Удаление топика

---

## 2. Параметры создания топика

Ниже перечислены параметры, которые необходимо указать при создании нового топика:

* **Имя топика**
Название топика.
Должно быть уникальным в пределах кластера.
Пример: `orders-events`.

* **Партиции**
Количество партиций топика.
Рекомендуется выбирать с учётом уровня параллелизма потребителей и предполагаемой нагрузки.
Пример: `6`. Здесь важно рассказать о том как происходит расчет оптимального количества
Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.

* **Реплики**
Количество реплик для каждой партиции.
Обычно равно количеству доступных брокеров или меньше.
Пример: `3`.


---

## 4. Параметры модификации топика

Для уже существующих топиков можно изменять параметры. Все параметры являются опциональными:

* **Имя топика**
Название топика.
Пример: `orders-events`.

* **Партиции**
Новое количество партиций.
Пример: `12`.

* **Реплики**
Новое количество реплик.
Пример: `2`.

---

## 5. Рекомендации

* Планируйте количество партиций с запасом — уменьшение их числа невозможно.
* Количество реплик должно соответствовать требуемому уровню отказоустойчивости, но не превышать количество брокеров.
* Изменение параметров топика в рабочем окружении может временно влиять на производительность. Рекомендуется проводить крупные изменения в периоды минимальной нагрузки.

---","cfsParams":[{"svcOperationCfsParamId":523,"svcOperationCfsParam":"nameTopic","label":"Название топика","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":525,"svcOperationCfsParam":"replicas","label":"Количество реплик для топика","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Количество реплик не может привышать количество реплик брокера","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":524,"svcOperationCfsParam":"partitions","label":"Количество партиций топика","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Число партиций можно увеличить, но уменьшить их нельзя.","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":43} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/116/166.json b/artifacts/api-meta/test/operations/116/166.json new file mode 100644 index 0000000..76852da --- /dev/null +++ b/artifacts/api-meta/test/operations/116/166.json @@ -0,0 +1 @@ +{"queryDurationMs":47,"svcOperation":{"svcOperationId":166,"operation":"modify_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Kafka/job/modify_topic/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"# Инструкция по управлению топиками Apache Kafka через платформу

## 1. Общая информация

---

Топик — это основная сущность в Apache Kafka, предназначенная для приёма сообщений от продюсеров и передачи их консюмерам.
Платформа позволяет создавать, удалять и изменять параметры топиков без прямого доступа к брокерам, обеспечивая удобное управление через интерфейс или API.

---

## Доступные операции

- **create_topic** — Создание топика
- **modify_topic** — Модификация топика
- **delete_topic** — Удаление топика

---

## 2. Параметры создания топика

Ниже перечислены параметры, которые необходимо указать при создании нового топика:

* **Имя топика**
Название топика.
Должно быть уникальным в пределах кластера.
Пример: `orders-events`.

* **Партиции**
Количество партиций топика.
Рекомендуется выбирать с учётом уровня параллелизма потребителей и предполагаемой нагрузки.
Пример: `6`. Здесь важно рассказать о том как происходит расчет оптимального количества
Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.

* **Реплики**
Количество реплик для каждой партиции.
Обычно равно количеству доступных брокеров или меньше.
Пример: `3`.


---

## 4. Параметры модификации топика

Для уже существующих топиков можно изменять параметры. Все параметры являются опциональными:

* **Имя топика**
Название топика.
Пример: `orders-events`.

* **Партиции**
Новое количество партиций.
Пример: `12`.

* **Реплики**
Новое количество реплик.
Пример: `2`.

---

## 5. Рекомендации

* Планируйте количество партиций с запасом — уменьшение их числа невозможно.
* Количество реплик должно соответствовать требуемому уровню отказоустойчивости, но не превышать количество брокеров.
* Изменение параметров топика в рабочем окружении может временно влиять на производительность. Рекомендуется проводить крупные изменения в периоды минимальной нагрузки.

---","cfsParams":[{"svcOperationCfsParamId":526,"svcOperationCfsParam":"nameTopic","label":"Название топика","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":528,"svcOperationCfsParam":"replicas","label":"Количество реплик для топика","dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Количество партиций ≤ (число брокеров). Пример `2`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":527,"svcOperationCfsParam":"partitions","label":"Количество партиций топика","dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Число партиций на кластер ≤ 100 × (число брокеров) × (фактор репликации). Пример `50`","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/116/167.json b/artifacts/api-meta/test/operations/116/167.json new file mode 100644 index 0000000..9feb959 --- /dev/null +++ b/artifacts/api-meta/test/operations/116/167.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":167,"operation":"delete_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Kafka/job/delete_topic/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":529,"svcOperationCfsParam":"nameTopic","label":"Название топика","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходимо выбрать топик, который необходимо удалить","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/116/168.json b/artifacts/api-meta/test/operations/116/168.json new file mode 100644 index 0000000..da3a4b8 --- /dev/null +++ b/artifacts/api-meta/test/operations/116/168.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svcOperation":{"svcOperationId":168,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Kafka/job/create_user/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.

---

## 1. Общая информация

Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.
Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.
Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.

---

## Доступные операции

- **create_user** — Создание пользователя
- **modify_user** — Модификация пользователя
- **delete_user** — Удаление пользователя

---

## 2. Параметры создания пользователя

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

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 3. Параметры модификации пользователя

Ниже перечислены параметры, которые необходимо указать при модификации пользователя:

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 4. Параметры удалении пользователя

Ниже перечислены параметры, которые необходимо указать при удалении пользователя:

* **Имя пользователя**
Имя удаляемого пользователя.
Пример: `username-admin`

## 5. Выходные параметры

После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:

* **ca.crt**
Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.
Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **ca.p12**
PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.p12
```

* **ca.password**
Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

* **user.crt**
Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.
Используется совместно с приватным ключом `user.key` для аутентификации.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **user.key**
Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.key
```

* **user.p12**
PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo "<содержание поля>" | base64 -d > <название>.p12
```

* **user.password**
Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

Эти параметры используются для настройки TLS-подключения.

---

## 6. Пример конфигурации клиента внутри кластера

Пример пода:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: kafka-4
spec:
volumes:
- name: work
emptyDir: {}
containers:
- name: kcat
image: quay.io/strimzi/kafka:latest-kafka-4.0.0
command: ["sleep", "5600"]
volumeMounts:
- name: work
mountPath: /work
restartPolicy: Never
```

Создаём под и сохраняем сертификаты:

```bash
kubectl cp user.p12 kafka-4:/work/
kubectl cp ca.p12 kafka-4:/work/
```

Создаём файлы конфигурации:

```bash
cat > /work/user-read.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

```bash
cat > /work/user-write.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user-write.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

Листинг доступных топиков:

```bash
/opt/kafka/bin/kafka-topics.sh \\
--bootstrap-server kafkak8s-bootstrap-external:9093 \\
--command-config /work/user-read.properties \\
--list
```

Запись сообщений:

```bash
/opt/kafka/bin/kafka-console-producer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--producer.config /work/user-write.properties
```

Чтение сообщений:

```bash
/opt/kafka/bin/kafka-console-consumer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--from-beginning \\
--group <group> \\
--consumer.config /work/user-read.properties \\
--max-messages 50
```

---

## 7. Пример внешнего подключения с использованием **kcat**

**Листинг топиков**

```bash
kcat -b <externalConnect.bootstrap.fqdn>:9093 \\
-L \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Запись сообщения**

```bash
echo "hello from kcat" | kcat -P \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-write.crt \\
-X ssl.key.location=./user-write.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Чтение сообщений**

```bash
kcat -C \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-o beginning \\
-q \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

---


## 9. Рекомендации

* Минимизируйте набор разрешённых операций для повышения безопасности.
* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.
* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.
* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.

---","cfsParams":[{"svcOperationCfsParamId":530,"svcOperationCfsParam":"username","label":"Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `username-admin`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":531,"svcOperationCfsParam":"nameTopic","label":"Название топика, к которому будут назначены права для создоваемого пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`. Использовать маску нельзя(`orders*`), только полное название или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":532,"svcOperationCfsParam":"operations","label":"Список операций, которые разрешены пользователю на топике","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `Create, Describe, Read, Write`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":533,"svcOperationCfsParam":"group","label":"Группа, которым разрешён доступ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `order-consumers` или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":534,"svcOperationCfsParam":"accessHosts","label":"Список хостов, с которых разрешено подключение к Kafka","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `192.168.1.0/24` или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/116/169.json b/artifacts/api-meta/test/operations/116/169.json new file mode 100644 index 0000000..dd0b36e --- /dev/null +++ b/artifacts/api-meta/test/operations/116/169.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":169,"operation":"modify_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Kafka/job/modify_user/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.

---

## 1. Общая информация

Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.
Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.
Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.

---

## Доступные операции

- **create_user** — Создание пользователя
- **modify_user** — Модификация пользователя
- **delete_user** — Удаление пользователя

---

## 2. Параметры создания пользователя

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

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 3. Параметры модификации пользователя

Ниже перечислены параметры, которые необходимо указать при модификации пользователя:

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 4. Параметры удалении пользователя

Ниже перечислены параметры, которые необходимо указать при удалении пользователя:

* **Имя пользователя**
Имя удаляемого пользователя.
Пример: `username-admin`

## 5. Выходные параметры

После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:

* **ca.crt**
Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.
Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **ca.p12**
PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.p12
```

* **ca.password**
Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

* **user.crt**
Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.
Используется совместно с приватным ключом `user.key` для аутентификации.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **user.key**
Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.key
```

* **user.p12**
PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo "<содержание поля>" | base64 -d > <название>.p12
```

* **user.password**
Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

Эти параметры используются для настройки TLS-подключения.

---

## 6. Пример конфигурации клиента внутри кластера

Пример пода:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: kafka-4
spec:
volumes:
- name: work
emptyDir: {}
containers:
- name: kcat
image: quay.io/strimzi/kafka:latest-kafka-4.0.0
command: ["sleep", "5600"]
volumeMounts:
- name: work
mountPath: /work
restartPolicy: Never
```

Создаём под и сохраняем сертификаты:

```bash
kubectl cp user.p12 kafka-4:/work/
kubectl cp ca.p12 kafka-4:/work/
```

Создаём файлы конфигурации:

```bash
cat > /work/user-read.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

```bash
cat > /work/user-write.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user-write.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

Листинг доступных топиков:

```bash
/opt/kafka/bin/kafka-topics.sh \\
--bootstrap-server kafkak8s-bootstrap-external:9093 \\
--command-config /work/user-read.properties \\
--list
```

Запись сообщений:

```bash
/opt/kafka/bin/kafka-console-producer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--producer.config /work/user-write.properties
```

Чтение сообщений:

```bash
/opt/kafka/bin/kafka-console-consumer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--from-beginning \\
--group <group> \\
--consumer.config /work/user-read.properties \\
--max-messages 50
```

---

## 7. Пример внешнего подключения с использованием **kcat**

**Листинг топиков**

```bash
kcat -b <externalConnect.bootstrap.fqdn>:9093 \\
-L \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Запись сообщения**

```bash
echo "hello from kcat" | kcat -P \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-write.crt \\
-X ssl.key.location=./user-write.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Чтение сообщений**

```bash
kcat -C \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-o beginning \\
-q \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

---


## 9. Рекомендации

* Минимизируйте набор разрешённых операций для повышения безопасности.
* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.
* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.
* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.

---","cfsParams":[{"svcOperationCfsParamId":539,"svcOperationCfsParam":"username","label":"Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `username-admin`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":535,"svcOperationCfsParam":"nameTopic","label":"Название топика (topic), к которому будут назначены права для указанного пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`. Использовать маску нельзя(`orders*`), только полное название или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":536,"svcOperationCfsParam":"operations","label":"Список операций, которые разрешены пользователю на топике","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `Create, Describe, Read, Write`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":537,"svcOperationCfsParam":"group","label":"Группа, которым разрешён доступ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `order-consumers` или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":538,"svcOperationCfsParam":"accessHosts","label":"Список хостов, с которых разрешено подключение к Kafka","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `192.168.1.0/24` или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/116/170.json b/artifacts/api-meta/test/operations/116/170.json new file mode 100644 index 0000000..5fe9a63 --- /dev/null +++ b/artifacts/api-meta/test/operations/116/170.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":170,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Kafka/job/delete_user/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.

---

## 1. Общая информация

Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.
Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.
Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.

---

## Доступные операции

- **create_user** — Создание пользователя
- **modify_user** — Модификация пользователя
- **delete_user** — Удаление пользователя

---

## 2. Параметры создания пользователя

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

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 3. Параметры модификации пользователя

Ниже перечислены параметры, которые необходимо указать при модификации пользователя:

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 4. Параметры удалении пользователя

Ниже перечислены параметры, которые необходимо указать при удалении пользователя:

* **Имя пользователя**
Имя удаляемого пользователя.
Пример: `username-admin`

## 5. Выходные параметры

После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:

* **ca.crt**
Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.
Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **ca.p12**
PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.p12
```

* **ca.password**
Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

* **user.crt**
Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.
Используется совместно с приватным ключом `user.key` для аутентификации.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **user.key**
Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.key
```

* **user.p12**
PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo "<содержание поля>" | base64 -d > <название>.p12
```

* **user.password**
Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

Эти параметры используются для настройки TLS-подключения.

---

## 6. Пример конфигурации клиента внутри кластера

Пример пода:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: kafka-4
spec:
volumes:
- name: work
emptyDir: {}
containers:
- name: kcat
image: quay.io/strimzi/kafka:latest-kafka-4.0.0
command: ["sleep", "5600"]
volumeMounts:
- name: work
mountPath: /work
restartPolicy: Never
```

Создаём под и сохраняем сертификаты:

```bash
kubectl cp user.p12 kafka-4:/work/
kubectl cp ca.p12 kafka-4:/work/
```

Создаём файлы конфигурации:

```bash
cat > /work/user-read.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

```bash
cat > /work/user-write.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user-write.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

Листинг доступных топиков:

```bash
/opt/kafka/bin/kafka-topics.sh \\
--bootstrap-server kafkak8s-bootstrap-external:9093 \\
--command-config /work/user-read.properties \\
--list
```

Запись сообщений:

```bash
/opt/kafka/bin/kafka-console-producer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--producer.config /work/user-write.properties
```

Чтение сообщений:

```bash
/opt/kafka/bin/kafka-console-consumer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--from-beginning \\
--group <group> \\
--consumer.config /work/user-read.properties \\
--max-messages 50
```

---

## 7. Пример внешнего подключения с использованием **kcat**

**Листинг топиков**

```bash
kcat -b <externalConnect.bootstrap.fqdn>:9093 \\
-L \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Запись сообщения**

```bash
echo "hello from kcat" | kcat -P \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-write.crt \\
-X ssl.key.location=./user-write.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Чтение сообщений**

```bash
kcat -C \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-o beginning \\
-q \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

---


## 9. Рекомендации

* Минимизируйте набор разрешённых операций для повышения безопасности.
* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.
* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.
* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.

---","cfsParams":[{"svcOperationCfsParamId":540,"svcOperationCfsParam":"username","label":"Имя удаляемого пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `username-admin`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/117.list b/artifacts/api-meta/test/operations/117.list new file mode 100644 index 0000000..9dbdc35 --- /dev/null +++ b/artifacts/api-meta/test/operations/117.list @@ -0,0 +1,3 @@ +modify 154 +delete 151 +create 150 diff --git a/artifacts/api-meta/test/operations/117/150.json b/artifacts/api-meta/test/operations/117/150.json new file mode 100644 index 0000000..4f8cd84 --- /dev/null +++ b/artifacts/api-meta/test/operations/117/150.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":150,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Nifi/job/create/view/tags/job/null/buildWithParameters","descr":"Топик — это основная сущность в Apache Kafka, в которую продюсеры публикуют сообщения и из которой консюмеры их читают.
Платформа предоставляет удобный способ создавать и изменять параметры топиков без прямого обращения к брокерам Kafka.","man":null,"cfsParams":[{"svcOperationCfsParamId":471,"svcOperationCfsParam":"kafkaUid","label":"Необходимо выбрать кластер кафки в который нужно создать топик","dataType":"uuid","valueList":null,"refSvcId":116,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать кластер из списка","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":474,"svcOperationCfsParam":"nameTopic","label":"Название топика","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":472,"svcOperationCfsParam":"partitions","label":"Количество партиций топика","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Число партиций на кластер ≤ 100 × (число брокеров) × (фактор репликации). Пример `50`","man":"Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":473,"svcOperationCfsParam":"replicas","label":"Количество реплик для топика","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Количество партиций ≤ (число брокеров). Пример `2`","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/117/151.json b/artifacts/api-meta/test/operations/117/151.json new file mode 100644 index 0000000..207d341 --- /dev/null +++ b/artifacts/api-meta/test/operations/117/151.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":151,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Nifi/job/delete/view/tags/job/null/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/117/154.json b/artifacts/api-meta/test/operations/117/154.json new file mode 100644 index 0000000..817529a --- /dev/null +++ b/artifacts/api-meta/test/operations/117/154.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":154,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Nifi/job/modify/view/tags/job/null/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":477,"svcOperationCfsParam":"partitions","label":"Количество партиций топика","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Число партиций на кластер ≤ 100 × (число брокеров) × (фактор репликации). Пример `50`","man":"Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":478,"svcOperationCfsParam":"replicas","label":"Количество реплик для топика","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Количество партиций ≤ (число брокеров). Пример `2`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/119.list b/artifacts/api-meta/test/operations/119.list new file mode 100644 index 0000000..0c3b370 --- /dev/null +++ b/artifacts/api-meta/test/operations/119.list @@ -0,0 +1,5 @@ +modify 180 +delete 176 +resume 178 +suspend 177 +create 175 diff --git a/artifacts/api-meta/test/operations/119/175.json b/artifacts/api-meta/test/operations/119/175.json new file mode 100644 index 0000000..f5643bd --- /dev/null +++ b/artifacts/api-meta/test/operations/119/175.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":175,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Akhq/job/create/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":555,"svcOperationCfsParam":"kafkaUid","label":"Кластер Kafka к которому нужно настроить подключение","dataType":"uuid","valueList":null,"refSvcId":116,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать кластер из списка","man":null,"sort":5,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":550,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать платформу из списка","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":554,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов в сети","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":1,"descr":null,"man":null,"sort":11,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":551,"svcOperationCfsParam":"resourceMemory","label":"Квота(megabyte) памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":512,"descr":"Пример: `1024`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":552,"svcOperationCfsParam":"resourceCPU","label":"Квота(millicore ) ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":500,"descr":"Пример: `1000`","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":553,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/119/176.json b/artifacts/api-meta/test/operations/119/176.json new file mode 100644 index 0000000..23c9345 --- /dev/null +++ b/artifacts/api-meta/test/operations/119/176.json @@ -0,0 +1 @@ +{"queryDurationMs":45,"svcOperation":{"svcOperationId":176,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Akhq/job/delete/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":45} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/119/177.json b/artifacts/api-meta/test/operations/119/177.json new file mode 100644 index 0000000..ee8c0ae --- /dev/null +++ b/artifacts/api-meta/test/operations/119/177.json @@ -0,0 +1 @@ +{"queryDurationMs":79,"svcOperation":{"svcOperationId":177,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Akhq/job/suspend/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":79} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/119/178.json b/artifacts/api-meta/test/operations/119/178.json new file mode 100644 index 0000000..451fc9e --- /dev/null +++ b/artifacts/api-meta/test/operations/119/178.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":178,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Akhq/job/resume/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/119/180.json b/artifacts/api-meta/test/operations/119/180.json new file mode 100644 index 0000000..3182f70 --- /dev/null +++ b/artifacts/api-meta/test/operations/119/180.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":180,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Akhq/job/modify/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":565,"svcOperationCfsParam":"kafkaUid","label":"Кластер Kafka к которому нужно настроить подключение","dataType":"uuid","valueList":null,"refSvcId":116,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать кластер из списка","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/12.list b/artifacts/api-meta/test/operations/12.list new file mode 100644 index 0000000..b8aae04 --- /dev/null +++ b/artifacts/api-meta/test/operations/12.list @@ -0,0 +1,7 @@ +resume 3 +suspend 2 +create_sub_user 6 +delete 5 +create 1 +delete_sub_user 7 +modify 4 diff --git a/artifacts/api-meta/test/operations/12/1.json b/artifacts/api-meta/test/operations/12/1.json new file mode 100644 index 0000000..3a9209b --- /dev/null +++ b/artifacts/api-meta/test/operations/12/1.json @@ -0,0 +1 @@ +{"queryDurationMs":69,"svcOperation":{"svcOperationId":1,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/s3/job/Ceph/job/create/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":320,"svcOperationCfsParam":"displayName","label":"Человеко-читаемое имя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Человеко-читаемое имя (транслит из Elma) - передаётся имя клиента","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":163,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"кластер S3 для подключения","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":69} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/12/2.json b/artifacts/api-meta/test/operations/12/2.json new file mode 100644 index 0000000..232575d --- /dev/null +++ b/artifacts/api-meta/test/operations/12/2.json @@ -0,0 +1 @@ +{"queryDurationMs":74,"svcOperation":{"svcOperationId":2,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/s3/job/Ceph/job/suspend/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":74} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/12/3.json b/artifacts/api-meta/test/operations/12/3.json new file mode 100644 index 0000000..7bfb999 --- /dev/null +++ b/artifacts/api-meta/test/operations/12/3.json @@ -0,0 +1 @@ +{"queryDurationMs":70,"svcOperation":{"svcOperationId":3,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/s3/job/Ceph/job/resume/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":70} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/12/4.json b/artifacts/api-meta/test/operations/12/4.json new file mode 100644 index 0000000..ba0b8a0 --- /dev/null +++ b/artifacts/api-meta/test/operations/12/4.json @@ -0,0 +1 @@ +{"queryDurationMs":65,"svcOperation":{"svcOperationId":4,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/s3/job/Ceph/job/modify/view/tags/job/1.0.5/buildWithParameters","descr":"При первичном вызове операции услуга Trial прекращает действие","man":"При первичном вызове операции услуга Trial прекращает действие","cfsParams":[{"svcOperationCfsParamId":50,"svcOperationCfsParam":"maxSizeGbPerUser","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":50000,"minvalue":1,"descr":"maxSizeGb. Передаём руками","man":"maxSizeGb. Передаём руками","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":51,"svcOperationCfsParam":"maxObjectsPerBucket","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":10000000,"minvalue":1,"descr":"Квота на бакет. Кол-во объектов. Передаём руками","man":"Квота на бакет. Кол-во объектов. Передаём руками","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":52,"svcOperationCfsParam":"maxBucketsPerUser","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":1000,"minvalue":1,"descr":"Квота на пользователя. Количество бакетов пользователя. Передаём руками","man":"Квота на пользователя. Количество бакетов пользователя. Передаём руками","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":65} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/12/5.json b/artifacts/api-meta/test/operations/12/5.json new file mode 100644 index 0000000..dfa3568 --- /dev/null +++ b/artifacts/api-meta/test/operations/12/5.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":5,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/s3/job/Ceph/job/delete/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/12/6.json b/artifacts/api-meta/test/operations/12/6.json new file mode 100644 index 0000000..638aa0a --- /dev/null +++ b/artifacts/api-meta/test/operations/12/6.json @@ -0,0 +1 @@ +{"queryDurationMs":74,"svcOperation":{"svcOperationId":6,"operation":"create_sub_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/s3/job/Ceph/job/create_sub_user/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":60,"svcOperationCfsParam":"subUserName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":61,"svcOperationCfsParam":"subUserAccess","label":null,"dataType":"string","valueList":["read","write","readwrite","full"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":74} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/12/7.json b/artifacts/api-meta/test/operations/12/7.json new file mode 100644 index 0000000..67af5b3 --- /dev/null +++ b/artifacts/api-meta/test/operations/12/7.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":7,"operation":"delete_sub_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/s3/job/Ceph/job/delete_sub_user/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":63,"svcOperationCfsParam":"subUserName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"subUserName. По идее услуга уже создана - должен передаваться из ЛК","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/120.list b/artifacts/api-meta/test/operations/120.list new file mode 100644 index 0000000..d7c59b4 --- /dev/null +++ b/artifacts/api-meta/test/operations/120.list @@ -0,0 +1,9 @@ +delete_user 187 +delete_database 188 +delete 184 +resume 183 +create_user 185 +create 181 +modify 189 +create_database 186 +suspend 182 diff --git a/artifacts/api-meta/test/operations/120/181.json b/artifacts/api-meta/test/operations/120/181.json new file mode 100644 index 0000000..8a8e8f2 --- /dev/null +++ b/artifacts/api-meta/test/operations/120/181.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":181,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/create/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"Операция создания кластера ClickHouse

Для подключения к кластеру также необходимо создать базу данных через операцию `create_database` и создание пользователя через операцию `create_user`","cfsParams":[{"svcOperationCfsParamId":572,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Кластер Kubernetes в котором будет развёрнуто приложение","man":"Выбрать платформу из списка

**Если список не отображается**
обратитесь к сервис менеджеру с вопросом предоставления ресурсной платформы","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":573,"svcOperationCfsParam":"s3Uid","label":"Услуга S3 для резервных копий","dataType":"uuid","valueList":null,"refSvcId":12,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Экземпляр (учетная запись) S3 для резервного копирования. Резервное копирование обязательно","man":"**Если список не отображается**
перейдите в раздел `S3 Object Storage`
операция `create`","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":574,"svcOperationCfsParam":"resourceInstances","label":"Кол-во реплик каждого шарда","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `3`","man":"**Для синхронизации данных между репликами** необходимо включить `Создать ClickHouse-Keeper`","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":575,"svcOperationCfsParam":"resourceInstancesShards","label":"Количество шардов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `1`","man":"**Шард** - это часть данных, разделенная на разные узлы (серверы) для горизонтального масштабирования и обработки больших объемов информации.
**Реплика** - это точная копия данных внутри одного шарда","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":576,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода кластера","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1000","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8000,"minvalue":1000,"descr":"Пример: `1000`","man":"Указывается в Milicores
`1000` Mili == `1` Ядро","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":577,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода кластера","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1536","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":1536,"descr":"Пример: `2048`","man":"Указывается в Megabytes","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":578,"svcOperationCfsParam":"appVersion","label":"Версия ClickHouse-server","dataType":"string","valueList":["25.10"],"refSvcId":null,"isRequired":true,"defaultValue":"25.10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия `clickhouse-server`","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":579,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Пример: `100`","man":"Указывается в Gigabytes","sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":580,"svcOperationCfsParam":"needExternalAddressMaster","label":"Публикация белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Позволяет подключиться извне к ClickHouse","man":"Для выделения IP также необходимо указать имя Ip-space.
Его можно получить из свойств ресурсной платформы","sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":581,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации белого ip master ноды","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `internet-no-antiddos-v1`","man":"Имя ipSpace для публикации внешнего адреса

Не может быть пустым, если включен `Выделение белого ip для master ноды`","sort":100,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":582,"svcOperationCfsParam":"needCreateKeeper","label":"Создать ClickHouse-Keeper","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходим для кластеризации ClickHouse","man":"Аналог `Zookeeper`, представленный от ClickHouse","sort":200,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":583,"svcOperationCfsParam":"resourceCPUKeeper","label":"Квота ядра пода Keeper","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"50","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8000,"minvalue":50,"descr":"Пример: `100`","man":"Указывается в Milicores
`1000` Mili == `1` Ядро","sort":210,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":584,"svcOperationCfsParam":"resourceMemoryKeeper","label":"Квота памяти пода Keeper","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"152","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":152,"descr":"Пример: `256`","man":"Указывается в Megabytes","sort":220,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":585,"svcOperationCfsParam":"resourceInstancesKeeper","label":"Кол-во реплик Keeper","dataType":"integer > 0","valueList":["1","3"],"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":3,"minvalue":1,"descr":"Пример: `1`","man":"Для **теста** - 1 нода.
Для **продуктива** - 3 ноды","sort":230,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":586,"svcOperationCfsParam":"ext_BACKUP_SCHEDULE","label":"Расписание резервного копирования","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"0 0 * * *","defaultCompute":null,"func":null,"regex":"^((((\\d+,)+\\d+|(\\d+(\\/|-|#)\\d+)|(\\d+L?)|(\\*(\\/\\d+)?)|(L(-\\d+)?)|(\\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\\d+(ns|us|µs|ms|s|m|h))+)$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Принимает формат `CRON`","man":null,"sort":500,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":587,"svcOperationCfsParam":"ext_BACKUP_NUM_TO_RETAIN","label":"Количество резервных копий","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"7","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":60,"minvalue":3,"descr":"Пример: `7`","man":"Кол-во **полных** резервных копий
Кол-во инкрементов - неограничено

Полная резервная копия выполняется раз в неделю
*Если изначально полной резервной копии нет* выполняется полный бекап
В остальные дни по крону выполняются **инкременты**","sort":510,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/120/182.json b/artifacts/api-meta/test/operations/120/182.json new file mode 100644 index 0000000..076ef0b --- /dev/null +++ b/artifacts/api-meta/test/operations/120/182.json @@ -0,0 +1 @@ +{"queryDurationMs":43,"svcOperation":{"svcOperationId":182,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/suspend/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"Операция приводит к удалению всех подов
Persistent Volume остаются нетронутыми","cfsParams":[]},"runDurationMs":43} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/120/183.json b/artifacts/api-meta/test/operations/120/183.json new file mode 100644 index 0000000..b5d2848 --- /dev/null +++ b/artifacts/api-meta/test/operations/120/183.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":183,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/resume/view/tags/job/0.0.4/buildWithParameters","descr":"Восстанавливает все поды и приводит кластер в работоспособный вид","man":null,"cfsParams":[]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/120/184.json b/artifacts/api-meta/test/operations/120/184.json new file mode 100644 index 0000000..c134b98 --- /dev/null +++ b/artifacts/api-meta/test/operations/120/184.json @@ -0,0 +1 @@ +{"queryDurationMs":90,"svcOperation":{"svcOperationId":184,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/delete/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"Удаление возможно только после остановки сервиса через операцию `suspend`
После выполнения операции необходимо выждать определенное кол-во времени","cfsParams":[]},"runDurationMs":90} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/120/185.json b/artifacts/api-meta/test/operations/120/185.json new file mode 100644 index 0000000..f707613 --- /dev/null +++ b/artifacts/api-meta/test/operations/120/185.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":185,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/create_user/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":596,"svcOperationCfsParam":"username","label":"Имя пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?![0-9_])[a-zA-Z_][a-zA-Z0-9_]{0,62}$","uniqueScope":null,"maxlength":62,"minlength":2,"maxvalue":null,"minvalue":null,"descr":"Пример: `myusername`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":598,"svcOperationCfsParam":"databaseName","label":"Список баз данных, к которым будет предоставлен доступ","dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[\"database\"]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходимо указать массив существующих баз","man":"Если базы не существует - при выполнении операции вернётся ошибка","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":599,"svcOperationCfsParam":"accessHosts","label":"Список хостов, с которых разрешено подключение к ClickHouse от лица пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"::/0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `::/0`","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/120/186.json b/artifacts/api-meta/test/operations/120/186.json new file mode 100644 index 0000000..1370fc8 --- /dev/null +++ b/artifacts/api-meta/test/operations/120/186.json @@ -0,0 +1 @@ +{"queryDurationMs":44,"svcOperation":{"svcOperationId":186,"operation":"create_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/create_database/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"База данных создаётся на всех репликах кластера ClickHouse","cfsParams":[{"svcOperationCfsParamId":600,"svcOperationCfsParam":"databaseName","label":"Имя базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `db01`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":44} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/120/187.json b/artifacts/api-meta/test/operations/120/187.json new file mode 100644 index 0000000..8ad9963 --- /dev/null +++ b/artifacts/api-meta/test/operations/120/187.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":187,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/delete_user/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":601,"svcOperationCfsParam":"username","label":null,"dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя пользователя, созданное через операцию `create_user`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/120/188.json b/artifacts/api-meta/test/operations/120/188.json new file mode 100644 index 0000000..cabbb63 --- /dev/null +++ b/artifacts/api-meta/test/operations/120/188.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":188,"operation":"delete_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/delete_database/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"Необратимое действие!!!
Трижды подумай, заблокируй телефон тимлида и не выполняй это действие","cfsParams":[{"svcOperationCfsParamId":602,"svcOperationCfsParam":"databaseName","label":"Имя базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"ВСЕ ДАННЫЕ ВНУТРИ БД БУДУТ УДАЛЕНЫ","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/120/189.json b/artifacts/api-meta/test/operations/120/189.json new file mode 100644 index 0000000..dd0aac8 --- /dev/null +++ b/artifacts/api-meta/test/operations/120/189.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":189,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/modify/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":603,"svcOperationCfsParam":"resourceInstances","label":"Кол-во реплик каждого шарда","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `3`","man":"**Для синхронизации данных между репликами** необходимо включить `Создать ClickHouse-Keeper`","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":604,"svcOperationCfsParam":"resourceInstancesShards","label":"Количество шардов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `1`","man":"**Шард** - это часть данных, разделенная на разные узлы (серверы) для горизонтального масштабирования и обработки больших объемов информации.
**Реплика** - это точная копия данных внутри одного шарда","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":605,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода кластера","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8000,"minvalue":1000,"descr":"Пример: `1000`","man":"Указывается в Milicores
`1000` Mili == `1` Ядро","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":606,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода кластера","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":1536,"descr":"Пример: `2048`","man":"Указывается в Megabytes","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":607,"svcOperationCfsParam":"appVersion","label":"Версия ClickHouse-server","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"25.10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия `clickhouse-server`","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":608,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Пример: `100`","man":"Указывается в Gigabytes
**Нельзя** выставлять меньше текущего значения","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":609,"svcOperationCfsParam":"needExternalAddressMaster","label":"Публикация белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Позволяет подключиться извне к ClickHouse","man":"Для выделения IP также необходимо указать имя Ip-space.
Его можно получить из свойств ресурсной платформы","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":610,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации белого ip master ноды","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `internet-no-antiddos-v1`","man":"Имя ipSpace для публикации внешнего адреса

Не может быть пустым, если включен `Выделение белого ip для master ноды`","sort":80,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":611,"svcOperationCfsParam":"needCreateKeeper","label":"Создать ClickHouse-Keeper","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходим для кластеризации ClickHouse","man":"Аналог `Zookeeper`, представленный от ClickHouse","sort":200,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":612,"svcOperationCfsParam":"resourceCPUKeeper","label":"Квота ядра пода Keeper","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8000,"minvalue":50,"descr":"Пример: `100`","man":"Указывается в Milicores
`1000` Mili == `1` Ядро","sort":210,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":613,"svcOperationCfsParam":"resourceMemoryKeeper","label":"Квота памяти пода Keeper","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":152,"descr":"Пример: `256`","man":"Указывается в Megabytes","sort":220,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":614,"svcOperationCfsParam":"resourceInstancesKeeper","label":"Кол-во реплик Keeper","dataType":"integer > 0","valueList":["1","3"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":3,"minvalue":1,"descr":"Пример: `1`","man":"Для **теста** - 1 нода.
Для **продуктива** - 3 ноды","sort":230,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":615,"svcOperationCfsParam":"ext_BACKUP_SCHEDULE","label":"Расписание резервного копирования","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"0 0 * * *","defaultCompute":null,"func":null,"regex":"^((((\\d+,)+\\d+|(\\d+(\\/|-|#)\\d+)|(\\d+L?)|(\\*(\\/\\d+)?)|(L(-\\d+)?)|(\\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\\d+(ns|us|µs|ms|s|m|h))+)$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Принимает формат `CRON`","man":null,"sort":500,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":616,"svcOperationCfsParam":"ext_BACKUP_NUM_TO_RETAIN","label":"Количество резервных копий","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":60,"minvalue":3,"descr":"Пример: `7`","man":"Кол-во **полных** резервных копий
Кол-во инкрементов - неограничено

Полная резервная копия выполняется раз в неделю
*Если изначально полной резервной копии нет* выполняется полный бекап
В остальные дни по крону выполняются **инкременты**","sort":510,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":58} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/13.list b/artifacts/api-meta/test/operations/13.list new file mode 100644 index 0000000..33a30cc --- /dev/null +++ b/artifacts/api-meta/test/operations/13.list @@ -0,0 +1,2 @@ +create 51 +delete 52 diff --git a/artifacts/api-meta/test/operations/13/51.json b/artifacts/api-meta/test/operations/13/51.json new file mode 100644 index 0000000..84f801a --- /dev/null +++ b/artifacts/api-meta/test/operations/13/51.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":51,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/s3/job/Bucket/job/create/view/tags/job/1.0.3/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":124,"svcOperationCfsParam":"s3UserUid","label":"UID Корневой услуги S3","dataType":"uuid","valueList":null,"refSvcId":12,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UID Корневой услуги S3. На основе него будет создан бакет.","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":125,"svcOperationCfsParam":"bucketName","label":"Имя бакета s3","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя бакета s3","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":126,"svcOperationCfsParam":"maxSize","label":"Размер бакета","dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"-1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Максимальный размер бакета s3. Если поставить -1, будет безлимит. Размер указывается в Bytes","man":"Максимальный размер бакета s3. Если поставить 0, будет безлимит. Размер указывается в Bytes","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":127,"svcOperationCfsParam":"readAll","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Публичный доступ на чтение позволяет любому пользователю интернета скачивать объекты из бакета.","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":128,"svcOperationCfsParam":"listAll","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Публичный доступ к листингу позволяет любому пользователю интернета получить список объектов в бакете.","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":129,"svcOperationCfsParam":"corsAll","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Публичный доступ к чтению настроек позволяет любому пользователю интернета читать конфигурации CORS","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":130,"svcOperationCfsParam":"placement","label":"Класс хранилища","dataType":"string","valueList":["HOT","COLD"],"refSvcId":null,"isRequired":true,"defaultValue":"HOT","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Класс хранилища, который используется по умолчанию при загрузке объектов. Чем холоднее, тем дешевле место, но дороже обращения","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/13/52.json b/artifacts/api-meta/test/operations/13/52.json new file mode 100644 index 0000000..d4bbd87 --- /dev/null +++ b/artifacts/api-meta/test/operations/13/52.json @@ -0,0 +1 @@ +{"queryDurationMs":77,"svcOperation":{"svcOperationId":52,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/s3/job/Bucket/job/delete/view/tags/job/1.0.3/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":77} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/149.list b/artifacts/api-meta/test/operations/149.list new file mode 100644 index 0000000..6428395 --- /dev/null +++ b/artifacts/api-meta/test/operations/149.list @@ -0,0 +1,5 @@ +resume 205 +suspend 204 +delete 206 +modify 203 +create 202 diff --git a/artifacts/api-meta/test/operations/149/202.json b/artifacts/api-meta/test/operations/149/202.json new file mode 100644 index 0000000..0c00790 --- /dev/null +++ b/artifacts/api-meta/test/operations/149/202.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":202,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/valo/job/Tenant/job/create/view/tags/job/0.0.1/buildWithParameters","descr":"При создании тенант предоставляется всегда в ТЕСТ (2 месяца с момента создания)
Для продления и переведения в ПРОД, воспользуйтесь в дальнейшем операцией modify","man":null,"cfsParams":[{"svcOperationCfsParamId":655,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":656,"svcOperationCfsParam":"domain","label":"DNS-Префикс","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^[a-z0-9](?:[a-z0-9-]{3,61}[a-z0-9])?$","uniqueScope":null,"maxlength":61,"minlength":3,"maxvalue":null,"minvalue":null,"descr":"Будет добавлено в зону valo.ngcloud.ru","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":658,"svcOperationCfsParam":"s3Storage","label":"Параметры хранилища","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Параметр указывается в `Gb`","man":"Данные хранятся в отдельном экземпляре S3","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":657,"svcOperationCfsParam":"valoOptions","label":"Настройки тенанта","dataType":"map-fixed","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"{}","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/149/203.json b/artifacts/api-meta/test/operations/149/203.json new file mode 100644 index 0000000..304bc88 --- /dev/null +++ b/artifacts/api-meta/test/operations/149/203.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svcOperation":{"svcOperationId":203,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/valo/job/Tenant/job/modify/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":659,"svcOperationCfsParam":"valoOptions","label":"Настройки тенанта","dataType":"map-fixed","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":660,"svcOperationCfsParam":"s3Storage","label":"Параметры хранилища","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Параметр указывается в `Gb`","man":"Данные хранятся в отдельном экземпляре S3","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":58} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/149/204.json b/artifacts/api-meta/test/operations/149/204.json new file mode 100644 index 0000000..faa4acd --- /dev/null +++ b/artifacts/api-meta/test/operations/149/204.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":204,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/valo/job/Tenant/job/suspend/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/149/205.json b/artifacts/api-meta/test/operations/149/205.json new file mode 100644 index 0000000..8c1e7cc --- /dev/null +++ b/artifacts/api-meta/test/operations/149/205.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":205,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/valo/job/Tenant/job/resume/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/149/206.json b/artifacts/api-meta/test/operations/149/206.json new file mode 100644 index 0000000..f7d61cf --- /dev/null +++ b/artifacts/api-meta/test/operations/149/206.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":206,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/valo/job/Tenant/job/delete/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/150.list b/artifacts/api-meta/test/operations/150.list new file mode 100644 index 0000000..397b78f --- /dev/null +++ b/artifacts/api-meta/test/operations/150.list @@ -0,0 +1,7 @@ +create 108 +delete 109 +modify 110 +resume 174 +suspend 173 +update_secrets 179 +reconcile 253 diff --git a/artifacts/api-meta/test/operations/150/108.json b/artifacts/api-meta/test/operations/150/108.json new file mode 100644 index 0000000..6a7abcf --- /dev/null +++ b/artifacts/api-meta/test/operations/150/108.json @@ -0,0 +1 @@ +{"queryDurationMs":65,"svcOperation":{"svcOperationId":108,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SthutrvalCluster/job/create/view/tags/job/1.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":344,"svcOperationCfsParam":"nsxtUid","label":"UUID nsxt","dataType":"uuid","valueList":null,"refSvcId":22,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"InstanceUid nsxt. Nsxt должен быть создан","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":747,"svcOperationCfsParam":"vdcUid","label":"UUID vdc","dataType":"uuid","valueList":null,"refSvcId":21,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":345,"svcOperationCfsParam":"clusterName","label":"Имя кластера Kubernetes","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"example1","defaultCompute":null,"func":null,"regex":"(?=^.{1,63}$)^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","uniqueScope":"provider","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Наименование кластера Kubernetes. Имя будет использоваться в fqdn (svc.$CLUSTER_NAME)","man":null,"sort":25,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":346,"svcOperationCfsParam":"controlPlaneSizingPolicy","label":"Сайзинг Control Plane","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Настройка Control Plane. CPU (шт) / MEM (gb).
Наверное, должна подтягиваться из свойств ресурсной платформы","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":347,"svcOperationCfsParam":"controlPlaneSizingDisk","label":"Размер (Gb) для Control Plane","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"30","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":20,"descr":"Настройка Control Plane. Disk (Gb)","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":348,"svcOperationCfsParam":"controlPlaneCount","label":"Кол-во нод Control Plane","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":9,"minvalue":1,"descr":null,"man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":349,"svcOperationCfsParam":"workersSizingPolicy","label":"Сайзинг Workers","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Настройка workers. CPU (шт) / MEM (gb)","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":350,"svcOperationCfsParam":"workersSizingDisk","label":"Размер (Gb) для Workers","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"40","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":20,"descr":"Настройка workers. Disk (Gb)","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":351,"svcOperationCfsParam":"workersCount","label":"Кол-во нод Workers","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"2","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":99,"minvalue":1,"descr":"Настройка workers. Кол-во нод","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":352,"svcOperationCfsParam":"appVersion","label":"Версия Штурвал","dataType":"string","valueList":["2.12.1","2.11.0"],"refSvcId":null,"isRequired":true,"defaultValue":"2.12.1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия Штурвал (не является версией Kubernetes)","man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":353,"svcOperationCfsParam":"needExternalAddressAPI","label":"Включить vIP для Kubernetes API","dataType":"boolean","valueList":["true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP для доступа к kubernetes API. Пока нельзя выставить false","man":null,"sort":100,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":354,"svcOperationCfsParam":"accessIpListAPI","label":"Access-List для Kubernetes API","dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Access IP List для подключения к Kubernetes API. Указывается массив. Если передан пустой массив, доступ выделяется всем","man":null,"sort":110,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":355,"svcOperationCfsParam":"needExternalAddressIngress","label":"Включить vIP для Kubernetes Ingress","dataType":"boolean","valueList":["true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP для доступа к Ingress","man":null,"sort":120,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":356,"svcOperationCfsParam":"accessIpListIngress","label":"Access-List для Kubernetes Ingress","dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Access IP List для подключения к Ingress. Указывается массив. Если передан пустой массив, доступ выделяется всем","man":null,"sort":130,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":67} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/150/109.json b/artifacts/api-meta/test/operations/150/109.json new file mode 100644 index 0000000..0cf448e --- /dev/null +++ b/artifacts/api-meta/test/operations/150/109.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":109,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SthutrvalCluster/job/delete/view/tags/job/1.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/150/110.json b/artifacts/api-meta/test/operations/150/110.json new file mode 100644 index 0000000..aa9d5d3 --- /dev/null +++ b/artifacts/api-meta/test/operations/150/110.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svcOperation":{"svcOperationId":110,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SthutrvalCluster/job/modify/view/tags/job/1.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":362,"svcOperationCfsParam":"controlPlaneCount","label":"Кол-во нод Control Plane","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":9,"minvalue":1,"descr":"Кол-во нод Control Plane","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":363,"svcOperationCfsParam":"workersCount","label":"Кол-во нод Workers","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":99,"minvalue":1,"descr":"Кол-во нод Workers","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":364,"svcOperationCfsParam":"accessIpListAPI","label":"Access-List для Kubernetes API","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Access IP List для подключения к Kubernetes API. Указывается массив. Если передан пустой массив, доступ выделяется всем","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":365,"svcOperationCfsParam":"accessIpListIngress","label":"Access-List для Kubernetes Ingress","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Access IP List для подключения к Ingress. Указывается массив. Если передан пустой массив, доступ выделяется всем","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":563,"svcOperationCfsParam":"appVersion","label":"Версия Штурвал","dataType":"string","valueList":["2.11.0","2.12.1"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия Штурвал (не является версией Kubernetes)
Понижать версию нельзя
Обновиться на несколько минорных нельзя
Невозможно перепрыгнуть не с последней минорной на мажорную
Можно обновиться на несколько патчей","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":637,"svcOperationCfsParam":"controlPlaneSizingDisk","label":"Размер (Gb) для Control Plane","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":638,"svcOperationCfsParam":"workersSizingDisk","label":"Размер (Gb) для Workers","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/150/173.json b/artifacts/api-meta/test/operations/150/173.json new file mode 100644 index 0000000..4dfdabc --- /dev/null +++ b/artifacts/api-meta/test/operations/150/173.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":173,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SthutrvalCluster/job/suspend/view/tags/job/1.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/150/174.json b/artifacts/api-meta/test/operations/150/174.json new file mode 100644 index 0000000..b4aa170 --- /dev/null +++ b/artifacts/api-meta/test/operations/150/174.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":174,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SthutrvalCluster/job/resume/view/tags/job/1.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/150/179.json b/artifacts/api-meta/test/operations/150/179.json new file mode 100644 index 0000000..27602c2 --- /dev/null +++ b/artifacts/api-meta/test/operations/150/179.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":179,"operation":"update_secrets","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SthutrvalCluster/job/update_secrets/view/tags/job/1.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/150/253.json b/artifacts/api-meta/test/operations/150/253.json new file mode 100644 index 0000000..3ea3a19 --- /dev/null +++ b/artifacts/api-meta/test/operations/150/253.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":253,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SthutrvalCluster/job/reconcile/view/tags/job/1.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/19.list b/artifacts/api-meta/test/operations/19.list new file mode 100644 index 0000000..daeac82 --- /dev/null +++ b/artifacts/api-meta/test/operations/19.list @@ -0,0 +1,6 @@ +reconcile 249 +resume 144 +create 136 +suspend 143 +delete 137 +modify 207 diff --git a/artifacts/api-meta/test/operations/19/136.json b/artifacts/api-meta/test/operations/19/136.json new file mode 100644 index 0000000..9cc0ff2 --- /dev/null +++ b/artifacts/api-meta/test/operations/19/136.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":136,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Org/job/create/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":"`IaaS` - Доступ в Keycloak предоставляется пользователю, который создаёт услугу
`SaaS` - Без доступа к Keycloak","cfsParams":[{"svcOperationCfsParamId":418,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Облако в котором будет развёрнут тенант","man":"Выбрать платформу из списка

**Если список не отображается**
обратитесь к сервис менеджеру с вопросом предоставления ресурсной платформы","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":556,"svcOperationCfsParam":"organizationType","label":"Тип организации","dataType":"string","valueList":["iaas","saas"],"refSvcId":null,"isRequired":true,"defaultValue":"iaas","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Доступ к организации предоставляется только при выборе `iaas`","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/19/137.json b/artifacts/api-meta/test/operations/19/137.json new file mode 100644 index 0000000..cdc6f0b --- /dev/null +++ b/artifacts/api-meta/test/operations/19/137.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":137,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Org/job/delete/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":"Удалить возможно только через 14 дней после выполнения операции `suspend`
**ОСТОРЖНО: Удаление приводит к полному удалению всех сущностей внутри этого тенанта**

Если существуют инстансы VDC, Edge, vApp, Vm или Kubernetes-кластер Штурвал, которые были созданы, из ЛК удалены не будут. Необходимо обратиться к `технической поддержке` для удаления инстансов","cfsParams":[]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/19/143.json b/artifacts/api-meta/test/operations/19/143.json new file mode 100644 index 0000000..012400b --- /dev/null +++ b/artifacts/api-meta/test/operations/19/143.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":143,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Org/job/suspend/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":"Операция **не останавливает ВМки** в облаке, но не даёт редактировать все сущности внутри тенанта","cfsParams":[]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/19/144.json b/artifacts/api-meta/test/operations/19/144.json new file mode 100644 index 0000000..77212a2 --- /dev/null +++ b/artifacts/api-meta/test/operations/19/144.json @@ -0,0 +1 @@ +{"queryDurationMs":99,"svcOperation":{"svcOperationId":144,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Org/job/resume/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":99} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/19/207.json b/artifacts/api-meta/test/operations/19/207.json new file mode 100644 index 0000000..d5fa3b9 --- /dev/null +++ b/artifacts/api-meta/test/operations/19/207.json @@ -0,0 +1 @@ +{"queryDurationMs":125,"svcOperation":{"svcOperationId":207,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Org/job/modify/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":"Для возможности изменения параметров предварительно необходимо создать **Виртуальный датацентр (VDC)**, потом **Сетевой шлюз периметра (Edge Gateway)**
Также при удалении ipSpaces убедитесь, что все внешние IP удалены. В случае если хоть одна привязка vIP есть, данный ipSpace удалён **не будет**","cfsParams":[{"svcOperationCfsParamId":662,"svcOperationCfsParam":"vIPConfigure","label":"Настройка внешних IP","dataType":"array-map-fixed","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":126} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/19/249.json b/artifacts/api-meta/test/operations/19/249.json new file mode 100644 index 0000000..bf5012c --- /dev/null +++ b/artifacts/api-meta/test/operations/19/249.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":249,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Org/job/reconcile/view/tags/job/1.0.2/buildWithParameters","descr":"Необходимо для актуализации состояния организации.
Операция приводит инстанс услуги к текущей целевой модели, принятой в Личном Кабинете: обновляет информацию из Cloud Director, производит миграцию состояния услуги до последней версии схемы","man":null,"cfsParams":[]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/2.list b/artifacts/api-meta/test/operations/2.list new file mode 100644 index 0000000..1351d26 --- /dev/null +++ b/artifacts/api-meta/test/operations/2.list @@ -0,0 +1,5 @@ +create 74 +delete 75 +modify 76 +suspend 97 +resume 98 diff --git a/artifacts/api-meta/test/operations/2/74.json b/artifacts/api-meta/test/operations/2/74.json new file mode 100644 index 0000000..36d01f9 --- /dev/null +++ b/artifacts/api-meta/test/operations/2/74.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":74,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Template/job/create/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":202,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"100","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":203,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"200","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":204,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":205,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":206,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":207,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/2/75.json b/artifacts/api-meta/test/operations/2/75.json new file mode 100644 index 0000000..8eb88dc --- /dev/null +++ b/artifacts/api-meta/test/operations/2/75.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":75,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Template/job/delete/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/2/76.json b/artifacts/api-meta/test/operations/2/76.json new file mode 100644 index 0000000..319a52b --- /dev/null +++ b/artifacts/api-meta/test/operations/2/76.json @@ -0,0 +1 @@ +{"queryDurationMs":46,"svcOperation":{"svcOperationId":76,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Template/job/modify/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":208,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":209,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":210,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":211,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":46} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/2/97.json b/artifacts/api-meta/test/operations/2/97.json new file mode 100644 index 0000000..ac47638 --- /dev/null +++ b/artifacts/api-meta/test/operations/2/97.json @@ -0,0 +1 @@ +{"queryDurationMs":45,"svcOperation":{"svcOperationId":97,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Template/job/suspend/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":46} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/2/98.json b/artifacts/api-meta/test/operations/2/98.json new file mode 100644 index 0000000..530c790 --- /dev/null +++ b/artifacts/api-meta/test/operations/2/98.json @@ -0,0 +1 @@ +{"queryDurationMs":46,"svcOperation":{"svcOperationId":98,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Template/job/resume/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":46} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/20.list b/artifacts/api-meta/test/operations/20.list new file mode 100644 index 0000000..fb97f71 --- /dev/null +++ b/artifacts/api-meta/test/operations/20.list @@ -0,0 +1,4 @@ +create 8 +delete 23 +suspend 118 +resume 119 diff --git a/artifacts/api-meta/test/operations/20/118.json b/artifacts/api-meta/test/operations/20/118.json new file mode 100644 index 0000000..05dd1f2 --- /dev/null +++ b/artifacts/api-meta/test/operations/20/118.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":118,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/OrgSaas/job/suspend/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/20/119.json b/artifacts/api-meta/test/operations/20/119.json new file mode 100644 index 0000000..3c52577 --- /dev/null +++ b/artifacts/api-meta/test/operations/20/119.json @@ -0,0 +1 @@ +{"queryDurationMs":60,"svcOperation":{"svcOperationId":119,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/OrgSaas/job/resume/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":60} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/20/23.json b/artifacts/api-meta/test/operations/20/23.json new file mode 100644 index 0000000..20cbd19 --- /dev/null +++ b/artifacts/api-meta/test/operations/20/23.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":23,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/OrgSaas/job/delete/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/20/8.json b/artifacts/api-meta/test/operations/20/8.json new file mode 100644 index 0000000..9b10f27 --- /dev/null +++ b/artifacts/api-meta/test/operations/20/8.json @@ -0,0 +1 @@ +{"queryDurationMs":70,"svcOperation":{"svcOperationId":8,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/OrgSaas/job/create/view/tags/job/1.0.0/buildWithParameters","descr":"Создание организации в Cloud Director
Id в клауд директоре создаётся на основе contragentCode","man":"Создание организации в Cloud Director
Id в клауд директоре создаётся на основе contragentCode","cfsParams":[{"svcOperationCfsParamId":185,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование ресурсной платформы","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":70} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/21.list b/artifacts/api-meta/test/operations/21.list new file mode 100644 index 0000000..2726b1c --- /dev/null +++ b/artifacts/api-meta/test/operations/21.list @@ -0,0 +1,6 @@ +create 9 +modify 112 +reconcile 250 +resume 172 +suspend 171 +delete 24 diff --git a/artifacts/api-meta/test/operations/21/112.json b/artifacts/api-meta/test/operations/21/112.json new file mode 100644 index 0000000..7ba6cbe --- /dev/null +++ b/artifacts/api-meta/test/operations/21/112.json @@ -0,0 +1 @@ +{"queryDurationMs":59,"svcOperation":{"svcOperationId":112,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vdc/job/modify/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":560,"svcOperationCfsParam":"cpuAllocated","label":"Сколько аллоцировать на VDC ЯДЕР","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"шт","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":561,"svcOperationCfsParam":"memAllocated","label":"Сколько аллоцировать на VDC ОЗУ","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":1024,"minvalue":1,"descr":"gb","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":562,"svcOperationCfsParam":"storageConfig","label":"Конфигурация Storage","dataType":"array-map-fixed","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Первая политика в списке указывается как "По умолчанию"","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":60} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/21/171.json b/artifacts/api-meta/test/operations/21/171.json new file mode 100644 index 0000000..c92a962 --- /dev/null +++ b/artifacts/api-meta/test/operations/21/171.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":171,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vdc/job/suspend/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":"Операция **не останавливает ВМки** в облаке, но не даёт редактировать все сущности внутри VDC","cfsParams":[]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/21/172.json b/artifacts/api-meta/test/operations/21/172.json new file mode 100644 index 0000000..9f194db --- /dev/null +++ b/artifacts/api-meta/test/operations/21/172.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svcOperation":{"svcOperationId":172,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vdc/job/resume/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/21/24.json b/artifacts/api-meta/test/operations/21/24.json new file mode 100644 index 0000000..d0a8432 --- /dev/null +++ b/artifacts/api-meta/test/operations/21/24.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":24,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vdc/job/delete/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":"Удалить возможно только через 14 дней после выполнения операции `suspend`
**ОСТОРЖНО: Удаление приводит к полному удалению всех сущностей внутри этого VDC**

Если существуют инстансы Edge, vApp, Vm или Kubernetes-кластер Штурвал, которые были созданы, из ЛК удалены не будут. Необходимо обратиться к `технической поддержке` для удаления инстансов","cfsParams":[]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/21/250.json b/artifacts/api-meta/test/operations/21/250.json new file mode 100644 index 0000000..2acadc8 --- /dev/null +++ b/artifacts/api-meta/test/operations/21/250.json @@ -0,0 +1 @@ +{"queryDurationMs":92,"svcOperation":{"svcOperationId":250,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vdc/job/reconcile/view/tags/job/1.0.5/buildWithParameters","descr":"Необходимо для актуализации состояния виртуального ДЦ.
Операция приводит инстанс услуги к текущей целевой модели, принятой в Личном Кабинете: обновляет информацию из Cloud Director, производит миграцию состояния услуги до последней версии схемы","man":null,"cfsParams":[]},"runDurationMs":92} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/21/9.json b/artifacts/api-meta/test/operations/21/9.json new file mode 100644 index 0000000..20a46f0 --- /dev/null +++ b/artifacts/api-meta/test/operations/21/9.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svcOperation":{"svcOperationId":9,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vdc/job/create/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":30,"svcOperationCfsParam":"organizationUid","label":"UUID Организации","dataType":"uuid","valueList":null,"refSvcId":19,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Для создания VDC предварительно необходимо создать организацию через услугу `Организация в Cloud Director`","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":746,"svcOperationCfsParam":"networkProvider","label":"Зона доступности","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":335,"svcOperationCfsParam":"providerVdc","label":"Кластер ресурсов","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Приписка `2.8` - Скорость vCPU - 2800MHz
И так далее...
","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":397,"svcOperationCfsParam":"cpuGuaranteed","label":"Гарантированная доля ЯДЕР","dataType":"integer > 0","valueList":["20","50","80"],"refSvcId":null,"isRequired":true,"defaultValue":"20","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"% резервирования","man":"Свойство нельзя изменить после создания","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":398,"svcOperationCfsParam":"memGuaranteed","label":"Гарантированная доля ОЗУ","dataType":"integer > 0","valueList":["20","50","80"],"refSvcId":null,"isRequired":true,"defaultValue":"20","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"% резервирования","man":"После создания нельзя изменить","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":557,"svcOperationCfsParam":"cpuAllocated","label":"Сколько аллоцировать на VDC ЯДЕР","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":200,"minvalue":1,"descr":"шт","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":558,"svcOperationCfsParam":"memAllocated","label":"Сколько аллоцировать на VDC ОЗУ","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"20","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4096,"minvalue":1,"descr":"gb","man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":361,"svcOperationCfsParam":"storageConfig","label":"Конфигурация Storage","dataType":"array-map-fixed","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Первая политика в списке указывается как "По умолчанию"","sort":100,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/22.list b/artifacts/api-meta/test/operations/22.list new file mode 100644 index 0000000..1c94259 --- /dev/null +++ b/artifacts/api-meta/test/operations/22.list @@ -0,0 +1,4 @@ +create 10 +modify 111 +reconcile 252 +delete 25 diff --git a/artifacts/api-meta/test/operations/22/10.json b/artifacts/api-meta/test/operations/22/10.json new file mode 100644 index 0000000..cc72769 --- /dev/null +++ b/artifacts/api-meta/test/operations/22/10.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":10,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Nsxt/job/create/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":621,"svcOperationCfsParam":"vdcType","label":"Тип подключаемой VDC","dataType":"string","valueList":["vdc","vdcGroup"],"refSvcId":null,"isRequired":true,"defaultValue":"vdc","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Тип родительской услуги","man":"При выборе vdc обеспечивает сетевую доступность только в рамках этого vdc
При выборе groupvdc обеспечивает сетевую доступность между всеми vdc, которые включены в groupvdc","sort":0,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":8,"svcOperationCfsParam":"vdcUid","label":"UUID Услуги VDC","dataType":"string","valueList":null,"refSvcId":21,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID Услуги `Виртуальный датацентр (vDC)`","man":"Необходимо, если выбран тип подключаемой VDC: `vdc`","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":622,"svcOperationCfsParam":"vdcGroupUid","label":"UUID Услуги Группы VDC","dataType":"string","valueList":null,"refSvcId":29,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID Услуги `Группа виртуальных датацентров (groupvDC)`","man":"Необходимо, если выбран тип подключаемой VDC: `groupvdc`","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":340,"svcOperationCfsParam":"needEnableAVI","label":"Включить ALB","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включение Load Balancer","man":"Параметры `Наименование segroup`, `Кол-во VS на AVI` необходимо также указать","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":341,"svcOperationCfsParam":"virtualServicesCount","label":"Кол-во VS на AVI","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4,"minvalue":1,"descr":"Кол-во виртуальных сервисов, которые **резервируются** на AVI","man":"Во избежании коллапса пока выделяется до 4
Необходимо указывать, если включён параметр `Включить ALB`","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/22/111.json b/artifacts/api-meta/test/operations/22/111.json new file mode 100644 index 0000000..fb29a8e --- /dev/null +++ b/artifacts/api-meta/test/operations/22/111.json @@ -0,0 +1 @@ +{"queryDurationMs":84,"svcOperation":{"svcOperationId":111,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Nsxt/job/modify/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":"Для создания SNAT Правила убедитесь, что в организации есть свободные IP
Редактировать кол-во свободных IP можно в услуге `Организация в Cloud Director` -> `modify`","cfsParams":[{"svcOperationCfsParamId":368,"svcOperationCfsParam":"needEnableAVI","label":"Включить ALB","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включение Load Balancer","man":"Параметры `Наименование segroup`, `Кол-во VS на AVI` необходимо также указать","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":369,"svcOperationCfsParam":"virtualServicesCount","label":null,"dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4,"minvalue":1,"descr":"Кол-во виртуальных сервисов, которые выделяются на AVI","man":"Во избежании коллапса пока выделяется до 4
Необходимо указывать, если включён параметр `Включить ALB`","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":371,"svcOperationCfsParam":"needExternalAddressSNAT","label":"Выделить VIP для SNAT","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Создать правило SNAT на подсеть `10.10.102.0/24`","man":"Параметр `ip Space для VIP` станет обязательным, если указан `true`","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":372,"svcOperationCfsParam":"ipSpaceName","label":"ip Space для VIP","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ip Space для внешнего IP

getKeyListFromStruct(getInstanceState(getValueFromStruct(getInstanceState(getValueFromStruct(getInstanceState(), "params.vdcUid")), "params.organizationUid")), "params.vIPConfigure")","man":"Необходимо указывать, если включён параметр `Выделить VIP для SNAT`","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":85} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/22/25.json b/artifacts/api-meta/test/operations/22/25.json new file mode 100644 index 0000000..f24dd7b --- /dev/null +++ b/artifacts/api-meta/test/operations/22/25.json @@ -0,0 +1 @@ +{"queryDurationMs":103,"svcOperation":{"svcOperationId":25,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Nsxt/job/delete/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":"Невозможно удалить если routed-сеть в Edge связана с:
- vApp
- VM
- Kubernetes-кластер Штурвал

Запустить операцию возможно, но будет ошибка","cfsParams":[]},"runDurationMs":103} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/22/252.json b/artifacts/api-meta/test/operations/22/252.json new file mode 100644 index 0000000..872843f --- /dev/null +++ b/artifacts/api-meta/test/operations/22/252.json @@ -0,0 +1 @@ +{"queryDurationMs":87,"svcOperation":{"svcOperationId":252,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Nsxt/job/reconcile/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":87} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/23.list b/artifacts/api-meta/test/operations/23.list new file mode 100644 index 0000000..5dc68f6 --- /dev/null +++ b/artifacts/api-meta/test/operations/23.list @@ -0,0 +1,5 @@ +suspend 27 +delete 29 +modify 68 +create 26 +resume 28 diff --git a/artifacts/api-meta/test/operations/23/26.json b/artifacts/api-meta/test/operations/23/26.json new file mode 100644 index 0000000..252f6a8 --- /dev/null +++ b/artifacts/api-meta/test/operations/23/26.json @@ -0,0 +1 @@ +{"queryDurationMs":86,"svcOperation":{"svcOperationId":26,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vm/job/create/view/tags/job/0.0.3/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":33,"svcOperationCfsParam":"vappUid","label":"InstanceUid vApp","dataType":"uuid","valueList":null,"refSvcId":26,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"InstanceUid vApp. vApp должен быть создан","man":"InstanceUid vApp. vApp должен быть создан","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":35,"svcOperationCfsParam":"vmName","label":"Имя ВМ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"vm0001","defaultCompute":null,"func":null,"regex":"^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ВМ. Не поддерживает спец-символы","man":"Имя ВМ. Не поддерживает спец-символы","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":36,"svcOperationCfsParam":"vmCpu","label":"CPU","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"2","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"CPU","man":"CPU","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":37,"svcOperationCfsParam":"vmRam","label":"RAM","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"2","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"RAM (GB)","man":"RAM (GB)","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":38,"svcOperationCfsParam":"vmDisksize","label":"Диск VM","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Размер диска под сервис (GB)","man":"Размер диска под сервис (GB)","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":176,"svcOperationCfsParam":"templateName","label":null,"dataType":"string","valueList":["RockyLinux_9-16G","OracleLinux_9-16G","Ubuntu_24-20G","Ubuntu_22-20G"],"refSvcId":null,"isRequired":true,"defaultValue":"RockyLinux_9-16G","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"ОС","man":"ОС","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":177,"svcOperationCfsParam":"accessIpList","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"79.111.119.78/32 185.247.187.1/32","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Вставить содержимое из 'curl ifconfig.io'
IP адреса в CIDR формате через пробел для настройки аксес листов","man":"IP адреса в CIDR формате через пробел для настройки аксес листов","sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":406,"svcOperationCfsParam":"ipSpaceName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Брать из свойств ресурсной платформы
.vcd.ipSpace

Имя IP-space для выделения внешнего IP (IP выделяется обязательно)","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":87} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/23/27.json b/artifacts/api-meta/test/operations/23/27.json new file mode 100644 index 0000000..7295620 --- /dev/null +++ b/artifacts/api-meta/test/operations/23/27.json @@ -0,0 +1 @@ +{"queryDurationMs":44,"svcOperation":{"svcOperationId":27,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vm/job/suspend/view/tags/job/0.0.3/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":45} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/23/28.json b/artifacts/api-meta/test/operations/23/28.json new file mode 100644 index 0000000..d5e7f14 --- /dev/null +++ b/artifacts/api-meta/test/operations/23/28.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svcOperation":{"svcOperationId":28,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vm/job/resume/view/tags/job/0.0.3/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/23/29.json b/artifacts/api-meta/test/operations/23/29.json new file mode 100644 index 0000000..a630e8e --- /dev/null +++ b/artifacts/api-meta/test/operations/23/29.json @@ -0,0 +1 @@ +{"queryDurationMs":58,"svcOperation":{"svcOperationId":29,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vm/job/delete/view/tags/job/0.0.3/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":59} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/23/68.json b/artifacts/api-meta/test/operations/23/68.json new file mode 100644 index 0000000..2d46e0a --- /dev/null +++ b/artifacts/api-meta/test/operations/23/68.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":68,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vm/job/modify/view/tags/job/0.0.3/buildWithParameters","descr":"Операция автоматически останавливает ВМ.","man":"Операция автоматически останавливает ВМ.","cfsParams":[{"svcOperationCfsParamId":186,"svcOperationCfsParam":"vmCpu","label":"CPU","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"CPU","man":"CPU","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":187,"svcOperationCfsParam":"vmRam","label":"RAM","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"RAM","man":"RAM","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":188,"svcOperationCfsParam":"vmDisksize","label":"Диск VM","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Размер диска под сервис (GB)","man":"Размер диска под сервис (GB)","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":189,"svcOperationCfsParam":"accessIpList","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"IP адреса в CIDR формате через пробел для настройки аксес листов","man":"IP адреса в CIDR формате через пробел для настройки аксес листов","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/24.list b/artifacts/api-meta/test/operations/24.list new file mode 100644 index 0000000..e69de29 diff --git a/artifacts/api-meta/test/operations/25.list b/artifacts/api-meta/test/operations/25.list new file mode 100644 index 0000000..66a862f --- /dev/null +++ b/artifacts/api-meta/test/operations/25.list @@ -0,0 +1,3 @@ +create 56 +delete 57 +modify 197 diff --git a/artifacts/api-meta/test/operations/25/197.json b/artifacts/api-meta/test/operations/25/197.json new file mode 100644 index 0000000..b047838 --- /dev/null +++ b/artifacts/api-meta/test/operations/25/197.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":197,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Ip/job/modify/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":627,"svcOperationCfsParam":"serviceUid","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":628,"svcOperationCfsParam":"ipSpaceName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":629,"svcOperationCfsParam":"dnatCreate","label":null,"dataType":"boolean","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":630,"svcOperationCfsParam":"snatCreate","label":null,"dataType":"boolean","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":631,"svcOperationCfsParam":"internalPortAccess","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":632,"svcOperationCfsParam":"internalAddrAccess","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/25/56.json b/artifacts/api-meta/test/operations/25/56.json new file mode 100644 index 0000000..c5d604d --- /dev/null +++ b/artifacts/api-meta/test/operations/25/56.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":56,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Ip/job/create/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":140,"svcOperationCfsParam":"serviceUid","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":336,"svcOperationCfsParam":"ipSpaceName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Тип ip Space (internet-ipv4-v1 / internet-antiddos-v1 / internet-no-antiddos-v1)","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":141,"svcOperationCfsParam":"dnatCreate","label":null,"dataType":"boolean","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходимо создать DNAT-правило.","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":143,"svcOperationCfsParam":"snatCreate","label":null,"dataType":"boolean","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходимо создать SNAT-правило.
","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":142,"svcOperationCfsParam":"internalPortAccess","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"5432","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Порт для связки ната с адресом. Несколько значений можно передавать через пробел. Если передать all, то dnat будет на все порты. Требует dnatCreate=true
","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":144,"svcOperationCfsParam":"internalAddrAccess","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Внутренний адрес для связки ната. Требует dnatCreate=true или snatCreate=true","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":324,"svcOperationCfsParam":"fromServiceNamespace","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Namespace составной услуги (для отображения правил FW)","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":325,"svcOperationCfsParam":"fromServiceCloudEdgeName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Edge составной услуги (указывать, если resourceRealm связан с CloudDirector)","man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":326,"svcOperationCfsParam":"fromServiceCloudVdcName","label":null,"dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Vdc составной услуги (указывать, если resourceRealm связан с CloudDirector)","man":null,"sort":100,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":327,"svcOperationCfsParam":"fromServiceCloudOrgName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Org составной услуги (указывать, если resourceRealm связан с CloudDirector)","man":null,"sort":110,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":328,"svcOperationCfsParam":"fromServiceCloudVmwareUrl","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Api-Url составной услуги (указывать, если resourceRealm связан с CloudDirector)","man":null,"sort":120,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":624,"svcOperationCfsParam":"fromServiceCloudEdgeScope","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":130,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":626,"svcOperationCfsParam":"fromServiceVdcGroupName","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":140,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":488,"svcOperationCfsParam":"resourceRealm","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":200,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/25/57.json b/artifacts/api-meta/test/operations/25/57.json new file mode 100644 index 0000000..66115b5 --- /dev/null +++ b/artifacts/api-meta/test/operations/25/57.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":57,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Ip/job/delete/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/26.list b/artifacts/api-meta/test/operations/26.list new file mode 100644 index 0000000..5278ec4 --- /dev/null +++ b/artifacts/api-meta/test/operations/26.list @@ -0,0 +1,4 @@ +create 69 +delete 70 +resume 209 +suspend 208 diff --git a/artifacts/api-meta/test/operations/26/208.json b/artifacts/api-meta/test/operations/26/208.json new file mode 100644 index 0000000..1dd1604 --- /dev/null +++ b/artifacts/api-meta/test/operations/26/208.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":208,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vapp/job/suspend/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/26/209.json b/artifacts/api-meta/test/operations/26/209.json new file mode 100644 index 0000000..ec7e958 --- /dev/null +++ b/artifacts/api-meta/test/operations/26/209.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":209,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vapp/job/resume/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/26/69.json b/artifacts/api-meta/test/operations/26/69.json new file mode 100644 index 0000000..ce95f18 --- /dev/null +++ b/artifacts/api-meta/test/operations/26/69.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":69,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vapp/job/create/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":623,"svcOperationCfsParam":"vdcUid","label":"UUID Услуги VDC","dataType":"uuid","valueList":null,"refSvcId":21,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID Услуги `Виртуальный датацентр (vDC)`","man":"В каких ресурсах будет создан виртуальный каталог","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":190,"svcOperationCfsParam":"nsxtUid","label":"UUID Услуги Edge","dataType":"uuid","valueList":null,"refSvcId":22,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID Услуги `Сетевой шлюз периметра (Edge)`","man":"К какой сети может быть подключен виртуальный каталог","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":191,"svcOperationCfsParam":"vappName","label":"Имя vApp","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^[a-z0-9][a-z0-9.-]{3,61}[a-z0-9]$","uniqueScope":null,"maxlength":null,"minlength":3,"maxvalue":null,"minvalue":null,"descr":"Уникальное в рамках организации","man":"Имеет строгую маску `^[a-z0-9][a-z0-9.-]{3,61}[a-z0-9]$`

Используется в формировании DNS-Имени (для виртуальных машин)","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/26/70.json b/artifacts/api-meta/test/operations/26/70.json new file mode 100644 index 0000000..6b7b549 --- /dev/null +++ b/artifacts/api-meta/test/operations/26/70.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":70,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vapp/job/delete/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/27.list b/artifacts/api-meta/test/operations/27.list new file mode 100644 index 0000000..f9f26c3 --- /dev/null +++ b/artifacts/api-meta/test/operations/27.list @@ -0,0 +1,5 @@ +resume 102 +create 100 +modify 104 +suspend 103 +delete 101 diff --git a/artifacts/api-meta/test/operations/27/100.json b/artifacts/api-meta/test/operations/27/100.json new file mode 100644 index 0000000..1a08108 --- /dev/null +++ b/artifacts/api-meta/test/operations/27/100.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":100,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VmV2/job/create/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":301,"svcOperationCfsParam":"serverListJson","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[{}]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":65536,"minlength":10,"maxvalue":null,"minvalue":null,"descr":"Необходимо изменить vappUid и ipSpaceName
Пример конфигурации взять по ссылке ниже

Объект серверов вида [{}] (Map(Object))
Более подробнее смотреть в README.md (https://gitea.mgmt.nubes.ru/cloudServices/vcVmV2)","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/27/101.json b/artifacts/api-meta/test/operations/27/101.json new file mode 100644 index 0000000..7f7710b --- /dev/null +++ b/artifacts/api-meta/test/operations/27/101.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":101,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VmV2/job/delete/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/27/102.json b/artifacts/api-meta/test/operations/27/102.json new file mode 100644 index 0000000..d9e71fc --- /dev/null +++ b/artifacts/api-meta/test/operations/27/102.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svcOperation":{"svcOperationId":102,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VmV2/job/resume/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/27/103.json b/artifacts/api-meta/test/operations/27/103.json new file mode 100644 index 0000000..3c898ca --- /dev/null +++ b/artifacts/api-meta/test/operations/27/103.json @@ -0,0 +1 @@ +{"queryDurationMs":46,"svcOperation":{"svcOperationId":103,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VmV2/job/suspend/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":46} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/27/104.json b/artifacts/api-meta/test/operations/27/104.json new file mode 100644 index 0000000..8ea83b9 --- /dev/null +++ b/artifacts/api-meta/test/operations/27/104.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svcOperation":{"svcOperationId":104,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VmV2/job/modify/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":302,"svcOperationCfsParam":"serverListJson","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[{}]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":65536,"minlength":10,"maxvalue":null,"minvalue":null,"descr":"Объект серверов вида [{}] (Map(Object))
Более подробнее смотреть в README.md (https://gitea.mgmt.nubes.ru/cloudServices/vcVmV2)","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/28.list b/artifacts/api-meta/test/operations/28.list new file mode 100644 index 0000000..3e13683 --- /dev/null +++ b/artifacts/api-meta/test/operations/28.list @@ -0,0 +1,6 @@ +create 132 +delete 133 +resume 135 +suspend 134 +redeploy 164 +modify 159 diff --git a/artifacts/api-meta/test/operations/28/132.json b/artifacts/api-meta/test/operations/28/132.json new file mode 100644 index 0000000..07f4829 --- /dev/null +++ b/artifacts/api-meta/test/operations/28/132.json @@ -0,0 +1 @@ +{"queryDurationMs":44,"svcOperation":{"svcOperationId":132,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VmV3/job/create/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":"# Документация по использованию услуги развёртывания ВМ в Личном кабинете

Данный сервис позволяет разворачивать виртуальные машины (ВМ) непосредственно из Личного кабинета (ЛК).

## Доступные операции
- **create** — Создание виртуальной машины
- **delete** — Удаление виртуальной машины
- **resume** — Запуск виртуальной машины
- **suspend** — Остановка виртуальной машины

---

## Параметры для развёртывания ВМ

### Обязательные параметры:

**vappUid**
UUID vApp, в которой будет создаваться виртуальная машина.
*Пример: WZ00400*

**vmName**
Уникальное имя виртуальной машины.
*Пример: test-vm*

**vmCpu**
Количество ядер процессора. Должно быть больше 0.
*Пример: 1*

**vmRam**
Объем оперативной памяти в гигабайтах. Должно быть больше 0.
*Пример: 1*


**accessPortList**
Белый список портов для доступа к виртуальной машине извне в формате JSON.
*Пример: ["22","10050]*

**imageVm**
Образ операционной системы для развёртывания.
*Доступные значения: RockyLinux_9-16G-cloudinit, Ubuntu_22-20G, Debian_13-20G*

**userLogin**
Логин пользователя для SSH-доступа.
*По умолчанию: myuser*

**userPublicKey**
Публичный SSH-ключ пользователя в формате OpenSSH.
*Пример: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...*

**needAddZabbixTemplate**
Значение истина\\лож определяющее будет ли добавлен хост в zabbix.
*Пример: true*

### Опциональные параметры:

**accessIpList**
Белый список IP-адресов для доступа к виртуальной машине в формате JSON. Если оставить пустым, вм будет доступена со всех адресов.
*Пример: ["192.168.1.1", "10.0.0.5"]*

**vmDisk**
Размер дополнительного диска в гигабайтах. Должно быть больше 0.
*Пример: 50*

**ipSpaceName**
Внешний IP-адрес. Если не требуется — укажите значение "no-needed".

**cloudInit**
YAML-скрипт для кастомизации системы через cloud-init.

---

## Доступные образы операционных систем

### RockyLinux_9-16G-cloudinit
Базовый образ на основе Rocky Linux 9 (Rocky-9.6-x86_64-minimal) для серверных задач.
- Размер системного диска: 16 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

### Ubuntu_22-20G
Образ на основе Ubuntu Server 22.04 LTS для облачного окружения.
- Размер системного диска: 20 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

### Debian_13-20G
Образ на основе Debian 13 (Trixie) для стабильной серверной работы.
- Размер системного диска: 20 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

---

## Пример использования Cloud-init

```yaml
users:
- name: myuser
sudo: ALL=(ALL) NOPASSWD:ALL
groups: sudo
shell: /bin/bash
ssh-authorized-keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...

packages:
- nginx

runcmd:
- systemctl enable --now nginx
- systemctl restart nginx
```

---

## Результат выполнения

После успешного развёртывания в Личном кабинете появится новая виртуальная машина с заданными характеристиками. SSH-доступ осуществляется с использованием указанных логина и публичного ключа.

---

## Важные примечания

### Особенности работы:
- Для отключения внешнего IP укажите значение "no-needed" в параметре ipSpaceName
- Параметр cloudInit является опциональным

### Ограничения:
- Не рекомендуется использовать продолжительные инструкции в cloud-init (таймаут 5 минут)
- Не поддерживается запись файлов через cloud-init
- Не реализовано создание резервных копий ВМ

---

## Диагностика проблем с cloud-init

### Основной лог-файл:
```bash
/var/log/cloud-init.log
```

### Пакет не устанавливается:
- Проверьте доступность пакета в репозитории
- Убедитесь в правильности написания имени пакета
- Попробуйте установить вручную: `apt install <имя_пакета>` (Debian/Ubuntu) или `dnf install <имя_пакета>` (Rocky Linux)

### Команда не выполняется:
- Проверьте наличие требуемой утилиты в системе
- Убедитесь в правильности синтаксиса команды
- Попробуйте выполнить команду вручную для диагностики","cfsParams":[{"svcOperationCfsParamId":407,"svcOperationCfsParam":"vappUid","label":"UUID vApp","dataType":"uuid","valueList":null,"refSvcId":26,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":408,"svcOperationCfsParam":"vmName","label":"Имя ВМ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":null,"func":null,"regex":"^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":409,"svcOperationCfsParam":"vmCpu","label":"Кол-во ядер","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":64,"minvalue":1,"descr":"шт","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":410,"svcOperationCfsParam":"vmRam","label":"Кол-во ОЗУ","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":256,"minvalue":1,"descr":"Gb","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":411,"svcOperationCfsParam":"vmDisk","label":"Размер дополнительного диска","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?:$|(?:0|[1-9]\\d{0,2}|1\\d{3}|20(?:[0-3]\\d|4[0-8])))$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Основной диск у vm зависит от образа (см. документацию)
Если необходимо дополнительное место для vm, введите колличество Gb в эту форму","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":412,"svcOperationCfsParam":"ipSpaceName","label":"Выделить внешний IP","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":413,"svcOperationCfsParam":"accessIpList","label":"Белый список подключения к ВМ","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?:$|\\[\\s*(?:\"(?:\\d{1,3}\\.){3}\\d{1,3}(?:\\/\\d{1,2})?\"(?:\\s*,\\s*\"(?:\\d{1,3}\\.){3}\\d{1,3}(?:\\/\\d{1,2})?\")*)\\s*\\])$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Формат массива
Каким адресам будет предоставлен доступ до вм

Требует выделенного внешнего IP
Если ничего не передано, то выставлено ["0.0.0.0/0"]","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":448,"svcOperationCfsParam":"accessPortList","label":"По каким портам открыть доступ к ВМ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"[\"22\"]","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"По каким портам открыть доступ к ВМ.
Порты 22, 10050 проставляются автоматически
Пока доступно:
22 - SSH,
80 - HTTP,
443 - HTTPS,
10050 - ZABBIX","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":414,"svcOperationCfsParam":"imageVm","label":"Образ ВМ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":416,"svcOperationCfsParam":"userLogin","label":"Логин для подключения","dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"myuser","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Учётка SSH","man":null,"sort":180,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":417,"svcOperationCfsParam":"userPublicKey","label":"Публичная часть SSH-Ключа","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Публичная часть SSH-Ключа для пользователя","man":null,"sort":190,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":415,"svcOperationCfsParam":"cloudInit","label":"Шаблон Cloud-Init","dataType":"yaml","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Можно передать создание дополнительных пользователей.
На текущий момент не реализовано выполнения в cloud-init, установки пакетов, выполнения команд и записи файлов.","man":null,"sort":200,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":449,"svcOperationCfsParam":"needAddZabbixTemplate","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Поле позволяет автоматически добавить новый хост в систему мониторинга Zabbix. После добавления вы сможете в реальном времени просматривать все метрики производительности хоста.","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":46} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/28/133.json b/artifacts/api-meta/test/operations/28/133.json new file mode 100644 index 0000000..960761c --- /dev/null +++ b/artifacts/api-meta/test/operations/28/133.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":133,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VmV3/job/delete/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/28/134.json b/artifacts/api-meta/test/operations/28/134.json new file mode 100644 index 0000000..8230357 --- /dev/null +++ b/artifacts/api-meta/test/operations/28/134.json @@ -0,0 +1 @@ +{"queryDurationMs":43,"svcOperation":{"svcOperationId":134,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VmV3/job/suspend/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":43} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/28/135.json b/artifacts/api-meta/test/operations/28/135.json new file mode 100644 index 0000000..0328773 --- /dev/null +++ b/artifacts/api-meta/test/operations/28/135.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":135,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VmV3/job/resume/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/28/159.json b/artifacts/api-meta/test/operations/28/159.json new file mode 100644 index 0000000..e5d7afc --- /dev/null +++ b/artifacts/api-meta/test/operations/28/159.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svcOperation":{"svcOperationId":159,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VmV3/job/modify/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":493,"svcOperationCfsParam":"vmCpu","label":"Кол-во ядер","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":64,"minvalue":1,"descr":"шт","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":494,"svcOperationCfsParam":"vmRam","label":"Кол-во ОЗУ","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":256,"minvalue":1,"descr":"Gb","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":495,"svcOperationCfsParam":"vmDisk","label":"Размер дополнительного диска","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?:$|(?:0|[1-9]\\d{0,2}|1\\d{3}|20(?:[0-3]\\d|4[0-8])))$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Основной диск у vm зависит от образа (см. документацию)
Если необходимо дополнительное место для vm, введите колличество Gb в эту форму","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":496,"svcOperationCfsParam":"ipSpaceName","label":"Выделить внешний IP","dataType":"string","valueList":["no-needed","internet-antiddos-v1","internet-no-antiddos-v1","internet-ipv4-v1"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"no-needed, без внешнего ip
internet-antiddos-v1, с функцией защиты от ddos атак
internet-no-antiddos-v1, с функцией защиты от ddos атак
internet-ipv4-v1 тестовое простанство dev","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":497,"svcOperationCfsParam":"accessIpList","label":"Белый список подключения к ВМ","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Формат массива
Каким адресам будет предоставлен доступ до вм

Требует выделенного внешнего IP
Если ничего не передано, то выставлено ["0.0.0.0/0"]","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":498,"svcOperationCfsParam":"accessPortList","label":"По каким портам открыть доступ к ВМ","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Формат массива
По каким портам открыть доступ к ВМ.
Пока доступно:
22 - SSH,
80 - HTTP,
443 - HTTPS,
10050 - ZABBIX","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":499,"svcOperationCfsParam":"needAddZabbixTemplate","label":null,"dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/28/164.json b/artifacts/api-meta/test/operations/28/164.json new file mode 100644 index 0000000..e59f852 --- /dev/null +++ b/artifacts/api-meta/test/operations/28/164.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":164,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VmV3/job/redeploy/view/tags/job/0.0.8/buildWithParameters","descr":"Полная потеря данных гарантирована
Но будет полностью сброшенная машина","man":null,"cfsParams":[{"svcOperationCfsParamId":509,"svcOperationCfsParam":"vmName","label":"Имя ВМ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":510,"svcOperationCfsParam":"vmCpu","label":"Кол-во ядер","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":64,"minvalue":1,"descr":"шт","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":511,"svcOperationCfsParam":"vmRam","label":"Кол-во ОЗУ","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":256,"minvalue":1,"descr":"Gb","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":512,"svcOperationCfsParam":"vmDisk","label":"Размер дополнительного диска","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?:$|(?:0|[1-9]\\d{0,2}|1\\d{3}|20(?:[0-3]\\d|4[0-8])))$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Основной диск у vm зависит от образа (см. документацию)
Если необходимо дополнительное место для vm, введите колличество Gb в эту форму","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":513,"svcOperationCfsParam":"ipSpaceName","label":"Выделить внешний IP","dataType":"string","valueList":["no-needed","internet-antiddos-v1","internet-no-antiddos-v1","internet-ipv4-v1"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"no-needed, без внешнего ip
internet-antiddos-v1, с функцией защиты от ddos атак
internet-no-antiddos-v1, с функцией защиты от ddos атак
internet-ipv4-v1 тестовое простанство dev","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":514,"svcOperationCfsParam":"accessIpList","label":"Белый список подключения к ВМ","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^(?:$|\\[\\s*(?:\"(?:\\d{1,3}\\.){3}\\d{1,3}(?:\\/\\d{1,2})?\"(?:\\s*,\\s*\"(?:\\d{1,3}\\.){3}\\d{1,3}(?:\\/\\d{1,2})?\")*)\\s*\\])$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Формат массива
Каким адресам будет предоставлен доступ до вм

Требует выделенного внешнего IP
Если ничего не передано, то выставлено ["0.0.0.0/0"]","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":520,"svcOperationCfsParam":"accessPortList","label":"По каким портам открыть доступ к ВМ","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"По каким портам открыть доступ к ВМ.
Порты 22, 10050 проставляются автоматически
Пока доступно:
22 - SSH,
80 - HTTP,
443 - HTTPS,
10050 - ZABBIX","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":515,"svcOperationCfsParam":"imageVm","label":"Образ ВМ","dataType":"string","valueList":["RockyLinux_9-16G-cloudinit","Ubuntu_22-20G","Debian_13-20G"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":516,"svcOperationCfsParam":"userLogin","label":"Логин для подключения","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Учётка SSH","man":null,"sort":180,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":517,"svcOperationCfsParam":"userPublicKey","label":"Публичная часть SSH-Ключа","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Публичная часть SSH-Ключа для пользователя","man":null,"sort":190,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":518,"svcOperationCfsParam":"cloudInit","label":"Шаблон Cloud-Init","dataType":"yaml","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Можно передать создание дополнительных пользователей.
На текущий момент не реализовано выполнения в cloud-init, установки пакетов, выполнения команд и записи файлов.","man":null,"sort":200,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":519,"svcOperationCfsParam":"needAddZabbixTemplate","label":"Поставить VM на мониторинг","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Поле позволяет автоматически добавить новый хост в систему мониторинга Zabbix. После добавления вы сможете в реальном времени просматривать все метрики производительности хоста.","man":null,"sort":300,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/29.list b/artifacts/api-meta/test/operations/29.list new file mode 100644 index 0000000..22fe741 --- /dev/null +++ b/artifacts/api-meta/test/operations/29.list @@ -0,0 +1,5 @@ +reconcile 251 +create 191 +remove_vdc 193 +add_vdc 192 +delete 195 diff --git a/artifacts/api-meta/test/operations/29/191.json b/artifacts/api-meta/test/operations/29/191.json new file mode 100644 index 0000000..94222b2 --- /dev/null +++ b/artifacts/api-meta/test/operations/29/191.json @@ -0,0 +1 @@ +{"queryDurationMs":44,"svcOperation":{"svcOperationId":191,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VdcGroup/job/create/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"**VDC Группа** нужна для объединения всех VDC в организации в одну логическую группу.
Это позволит, к примеру, создать **общую сеть** для всех VDC в организации

- Для создания группы VDC необходимо указать **инстанс** услуги VDC (`Виртуальный датацентр`)
- **Важный момент** - удалить эту VDC из группы нельзя. Если такая потребность появится, необходимо будет **ПОЛНОСТЬЮ** удалить группу VDC и уже потом создать новую","cfsParams":[{"svcOperationCfsParamId":618,"svcOperationCfsParam":"vdcUid","label":"UUID VDC","dataType":"uuid","valueList":null,"refSvcId":21,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":45} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/29/192.json b/artifacts/api-meta/test/operations/29/192.json new file mode 100644 index 0000000..c4f3ed1 --- /dev/null +++ b/artifacts/api-meta/test/operations/29/192.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":192,"operation":"add_vdc","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VdcGroup/job/add_vdc/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"**Не нужно** выбирать UUID VDC, который уже был добавлен в группу","cfsParams":[{"svcOperationCfsParamId":619,"svcOperationCfsParam":"vdcUid","label":"Какой VDC добавить в группу","dataType":"uuid","valueList":null,"refSvcId":21,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/29/193.json b/artifacts/api-meta/test/operations/29/193.json new file mode 100644 index 0000000..fb00ec2 --- /dev/null +++ b/artifacts/api-meta/test/operations/29/193.json @@ -0,0 +1 @@ +{"queryDurationMs":46,"svcOperation":{"svcOperationId":193,"operation":"remove_vdc","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VdcGroup/job/remove_vdc/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":620,"svcOperationCfsParam":"vdcName","label":"Какой VDC удалить из группы","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":47} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/29/195.json b/artifacts/api-meta/test/operations/29/195.json new file mode 100644 index 0000000..423d4e4 --- /dev/null +++ b/artifacts/api-meta/test/operations/29/195.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":195,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VdcGroup/job/delete/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/29/251.json b/artifacts/api-meta/test/operations/29/251.json new file mode 100644 index 0000000..3a741cc --- /dev/null +++ b/artifacts/api-meta/test/operations/29/251.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":251,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VdcGroup/job/reconcile/view/tags/job/0.0.2/buildWithParameters","descr":"Необходимо для актуализации состояния группы датацентров.
Операция приводит инстанс услуги к текущей целевой модели, принятой в Личном Кабинете: обновляет информацию из Cloud Director, производит миграцию состояния услуги до последней версии схемы","man":null,"cfsParams":[]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/32.list b/artifacts/api-meta/test/operations/32.list new file mode 100644 index 0000000..e69de29 diff --git a/artifacts/api-meta/test/operations/50.list b/artifacts/api-meta/test/operations/50.list new file mode 100644 index 0000000..012f02b --- /dev/null +++ b/artifacts/api-meta/test/operations/50.list @@ -0,0 +1,6 @@ +create 16 +modify 67 +restart 66 +delete 17 +resume 129 +suspend 128 diff --git a/artifacts/api-meta/test/operations/50/128.json b/artifacts/api-meta/test/operations/50/128.json new file mode 100644 index 0000000..46d578b --- /dev/null +++ b/artifacts/api-meta/test/operations/50/128.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":128,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Nextcloud/job/suspend/view/tags/job/0.0.9/buildWithParameters","descr":"Не работает из за проблемы с отсуствием механизма зануления реплики (в вейлюсах нельзя задать количство реплик)","man":null,"cfsParams":[]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/50/129.json b/artifacts/api-meta/test/operations/50/129.json new file mode 100644 index 0000000..56f31e2 --- /dev/null +++ b/artifacts/api-meta/test/operations/50/129.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":129,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Nextcloud/job/resume/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/50/16.json b/artifacts/api-meta/test/operations/50/16.json new file mode 100644 index 0000000..4a3b21e --- /dev/null +++ b/artifacts/api-meta/test/operations/50/16.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":16,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Nextcloud/job/create/view/tags/job/0.0.9/buildWithParameters","descr":"Ресурсная платформа берётся из PSQL UUID","man":"DEV-Ветка сборки Nextcloud","cfsParams":[{"svcOperationCfsParamId":564,"svcOperationCfsParam":"psqlUid","label":"Кластер услуги k8sPgsql","dataType":"uuid","valueList":null,"refSvcId":90,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":6,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":570,"svcOperationCfsParam":"redisUid","label":"Кластер услуги k8sRedis","dataType":"uuid","valueList":null,"refSvcId":91,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":7,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":21,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Наименование домена. Если будет указан FQDN, то происходят проверки DNS. Если указан поддомен, то будет добавлен в зону services.ngcloud.ru
Можно указать клиентскую DNS-Запись. Важно, чтобы запись смотрела на Ingress кластера","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":569,"svcOperationCfsParam":"appVersion","label":"Версия Nextcloud","dataType":null,"valueList":["32.0.1"],"refSvcId":null,"isRequired":true,"defaultValue":"32.0.1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":99,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1000","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili). 1 ядро = 1000 Mili","man":"Квота ядра пода (Указывается в mili). 1 ядро = 1000 Mili","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":100,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1024","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":1024,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":101,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"2","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":2,"descr":"Квота диска (Указывается в GIGAbytes)
Диск не может быть меньше 2G (!)","man":"Квота диска (Указывается в GIGAbytes)","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":470,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":["1"],"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов
Не может пока быть больше одного, так как нужны SC под RWMany","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":192,"svcOperationCfsParam":"documentServer","label":"Сервер документов","dataType":"string","valueList":["collabora"],"refSvcId":null,"isRequired":true,"defaultValue":"collabora","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбор сервера документов (onlyoffice)/(collabora). onlyoffice пока не доступен
Размер пода collabora:
1.8 ядра. 2Gi ОЗУ","man":"Выбор сервера документов (onlyoffice)/(collabora). onlyoffice пока не доступен","sort":100,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/50/17.json b/artifacts/api-meta/test/operations/50/17.json new file mode 100644 index 0000000..2b6dc2b --- /dev/null +++ b/artifacts/api-meta/test/operations/50/17.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":17,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Nextcloud/job/delete/view/tags/job/0.0.9/buildWithParameters","descr":"DEV-Ветка удаления Nextcloud","man":"DEV-Ветка удаления Nextcloud","cfsParams":[]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/50/66.json b/artifacts/api-meta/test/operations/50/66.json new file mode 100644 index 0000000..7234c12 --- /dev/null +++ b/artifacts/api-meta/test/operations/50/66.json @@ -0,0 +1 @@ +{"queryDurationMs":67,"svcOperation":{"svcOperationId":66,"operation":"restart","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Nextcloud/job/restart/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":67} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/50/67.json b/artifacts/api-meta/test/operations/50/67.json new file mode 100644 index 0000000..6a601eb --- /dev/null +++ b/artifacts/api-meta/test/operations/50/67.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":67,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Nextcloud/job/modify/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":178,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili)","man":"Квота ядра пода (Указывается в mili)","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":179,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":180,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":547,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":["1"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов.
Не может пока быть больше одного, так как нужны SC под RWMany","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":571,"svcOperationCfsParam":"appVersion","label":"Версия Nextcloud","dataType":"string","valueList":["32.0.1"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Нельзя обновляться сразу через несколько версий сразу","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/81.list b/artifacts/api-meta/test/operations/81.list new file mode 100644 index 0000000..1765516 --- /dev/null +++ b/artifacts/api-meta/test/operations/81.list @@ -0,0 +1,2 @@ +create 12 +delete 13 diff --git a/artifacts/api-meta/test/operations/81/12.json b/artifacts/api-meta/test/operations/81/12.json new file mode 100644 index 0000000..0077151 --- /dev/null +++ b/artifacts/api-meta/test/operations/81/12.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":12,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Superset/job/create/view/tags/job/0.0.8/buildWithParameters","descr":"DEV-Ветка сборки Superset","man":"DEV-Ветка сборки Superset","cfsParams":[{"svcOperationCfsParamId":14,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":109,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":96,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili). 1000 Mili = 1 ядро","man":"Квота ядра пода (Указывается в mili). 1000 Mili = 1 ядро","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":97,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":98,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":227,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":20,"svcOperationCfsParam":"emails","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"testuser1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Учётная запись, которой будут выданы админские права. В формате email [ну не совсем. Для доменных учетных записей - без доменного суффикса]. Обязана находиться в Keycloak. Можно передавать несколько через пробел","man":"Учётная запись, которой будут выданы админские права. В формате email [ну не совсем. Для доменных учетных записей - без доменного суффикса]. Обязана находиться в Keycloak. Можно передавать несколько через пробел","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":58} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/81/13.json b/artifacts/api-meta/test/operations/81/13.json new file mode 100644 index 0000000..42d335d --- /dev/null +++ b/artifacts/api-meta/test/operations/81/13.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svcOperation":{"svcOperationId":13,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Superset/job/delete/view/tags/job/0.0.8/buildWithParameters","descr":"DEV-Ветка удаления Superset","man":"DEV-Ветка удаления Superset","cfsParams":[]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/82.list b/artifacts/api-meta/test/operations/82.list new file mode 100644 index 0000000..e06bc95 --- /dev/null +++ b/artifacts/api-meta/test/operations/82.list @@ -0,0 +1,2 @@ +create 14 +delete 15 diff --git a/artifacts/api-meta/test/operations/82/14.json b/artifacts/api-meta/test/operations/82/14.json new file mode 100644 index 0000000..546f81c --- /dev/null +++ b/artifacts/api-meta/test/operations/82/14.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":14,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Registry/job/create/view/tags/job/0.0.9/buildWithParameters","descr":"DEV-Ветка сборки Harbor","man":"DEV-Ветка сборки Harbor","cfsParams":[{"svcOperationCfsParamId":231,"svcOperationCfsParam":"s3Uid","label":null,"dataType":"uuid","valueList":null,"refSvcId":12,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID экземпляра услуги S3","man":"UUID экземпляра услуги S3","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":16,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":110,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":228,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"100","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро","man":"Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":229,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"200","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":230,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":17,"svcOperationCfsParam":"emails","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"testuser1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Учётная запись, которой будут выданы админские права. Обязана находиться в Keycloak. Можно передавать несколько через пробел","man":"Учётная запись, которой будут выданы админские права. Обязана находиться в Keycloak. Можно передавать несколько через пробел","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/82/15.json b/artifacts/api-meta/test/operations/82/15.json new file mode 100644 index 0000000..b52f978 --- /dev/null +++ b/artifacts/api-meta/test/operations/82/15.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":15,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Registry/job/delete/view/tags/job/0.0.9/buildWithParameters","descr":"DEV-Ветка удаления Harbor","man":"DEV-Ветка удаления Harbor","cfsParams":[]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/88.list b/artifacts/api-meta/test/operations/88.list new file mode 100644 index 0000000..08b2e7e --- /dev/null +++ b/artifacts/api-meta/test/operations/88.list @@ -0,0 +1,2 @@ +delete 105 +create 99 diff --git a/artifacts/api-meta/test/operations/88/105.json b/artifacts/api-meta/test/operations/88/105.json new file mode 100644 index 0000000..60a4a36 --- /dev/null +++ b/artifacts/api-meta/test/operations/88/105.json @@ -0,0 +1 @@ +{"queryDurationMs":43,"svcOperation":{"svcOperationId":105,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ZitiController/job/delete/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":43} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/88/99.json b/artifacts/api-meta/test/operations/88/99.json new file mode 100644 index 0000000..f938f8f --- /dev/null +++ b/artifacts/api-meta/test/operations/88/99.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svcOperation":{"svcOperationId":99,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ZitiController/job/create/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":299,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":"provider","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":298,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":294,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"300","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (milicores)","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":295,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":296,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":297,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/89.list b/artifacts/api-meta/test/operations/89.list new file mode 100644 index 0000000..aa8a88c --- /dev/null +++ b/artifacts/api-meta/test/operations/89.list @@ -0,0 +1,5 @@ +delete 89 +create 88 +suspend 125 +modify 146 +resume 145 diff --git a/artifacts/api-meta/test/operations/89/125.json b/artifacts/api-meta/test/operations/89/125.json new file mode 100644 index 0000000..cc05f2c --- /dev/null +++ b/artifacts/api-meta/test/operations/89/125.json @@ -0,0 +1 @@ +{"queryDurationMs":43,"svcOperation":{"svcOperationId":125,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Flask/job/suspend/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":43} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/89/145.json b/artifacts/api-meta/test/operations/89/145.json new file mode 100644 index 0000000..0db0949 --- /dev/null +++ b/artifacts/api-meta/test/operations/89/145.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":145,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Flask/job/resume/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/89/146.json b/artifacts/api-meta/test/operations/89/146.json new file mode 100644 index 0000000..b367391 --- /dev/null +++ b/artifacts/api-meta/test/operations/89/146.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":146,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Flask/job/modify/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":451,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8000,"minvalue":100,"descr":"Пример: `1000`","man":"Указывается в Milicores
`1000` Mili == `1` Ядро","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":452,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Пример: `2048`","man":"Указывается в Megabytes","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":453,"svcOperationCfsParam":"resourceInstances","label":"Кол-во реплик пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `3`","man":"Балансировка производится между всеми репликами","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":454,"svcOperationCfsParam":"gitPath","label":"URL Проекта (gitpath)","dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `https://github.com/myuser/myproject.git`","man":"Проект должен быть публичным","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":455,"svcOperationCfsParam":"jsonEnv","label":"Переменные окружения пода","dataType":"map","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Структура, которая будет передана как переменные окружения","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/89/88.json b/artifacts/api-meta/test/operations/89/88.json new file mode 100644 index 0000000..4c5ce4f --- /dev/null +++ b/artifacts/api-meta/test/operations/89/88.json @@ -0,0 +1 @@ +{"queryDurationMs":118,"svcOperation":{"svcOperationId":88,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Flask/job/create/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":248,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Если будет указан `FQDN`, то происходят проверки DNS на валидность А-записи. А-запись **обязана смотреть на балансировщик** ресурсной платформы.
Если указано имя `в рамках одного октета`, будет добавлено **в публичную днс-зону**","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":249,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Кластер Kubernetes в котором будет развёрнуто приложение","man":"Выбрать платформу из списка

**Если список не отображается**
обратитесь к сервис менеджеру с вопросом предоставления ресурсной платформы","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":250,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"300","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8000,"minvalue":100,"descr":"Пример: `1000`","man":"Указывается в Milicores
`1000` Mili == `1` Ядро","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":251,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"256","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Пример: `2048`","man":"Указывается в Megabytes","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":252,"svcOperationCfsParam":"resourceInstances","label":"Кол-во реплик пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `3`","man":"Балансировка производится между всеми репликами","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":253,"svcOperationCfsParam":"gitPath","label":"URL Проекта (gitpath)","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"https://github.com/Foxyhhd/Baldurs-Gate-test.git","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `https://github.com/myuser/myproject.git`","man":"Проект должен быть публичным","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":255,"svcOperationCfsParam":"healthPath","label":"URL HealthCheck","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `/api/v1/health`","man":"Может быть пустым. Если ничего не передано, проверяется `tcpsocket`
Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":254,"svcOperationCfsParam":"jsonEnv","label":"Переменные окружения пода","dataType":"map","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Структура, которая будет передана как переменные окружения","sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":119} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/89/89.json b/artifacts/api-meta/test/operations/89/89.json new file mode 100644 index 0000000..bac4759 --- /dev/null +++ b/artifacts/api-meta/test/operations/89/89.json @@ -0,0 +1 @@ +{"queryDurationMs":45,"svcOperation":{"svcOperationId":89,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Flask/job/delete/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"Удаление возможно только после остановки сервиса через операцию `suspend`
После выполнения операции необходимо выждать определенное кол-во времени","cfsParams":[]},"runDurationMs":45} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/90.list b/artifacts/api-meta/test/operations/90.list new file mode 100644 index 0000000..20422b7 --- /dev/null +++ b/artifacts/api-meta/test/operations/90.list @@ -0,0 +1,11 @@ +restart 54 +resume 114 +delete 20 +modify 48 +recovery 47 +create 19 +suspend 115 +create_user 241 +delete_user 244 +create_database 245 +delete_database 246 diff --git a/artifacts/api-meta/test/operations/90/114.json b/artifacts/api-meta/test/operations/90/114.json new file mode 100644 index 0000000..9e64d8f --- /dev/null +++ b/artifacts/api-meta/test/operations/90/114.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":114,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/resume/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/90/115.json b/artifacts/api-meta/test/operations/90/115.json new file mode 100644 index 0000000..a7f8161 --- /dev/null +++ b/artifacts/api-meta/test/operations/90/115.json @@ -0,0 +1 @@ +{"queryDurationMs":45,"svcOperation":{"svcOperationId":115,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/suspend/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":45} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/90/19.json b/artifacts/api-meta/test/operations/90/19.json new file mode 100644 index 0000000..d2eabf7 --- /dev/null +++ b/artifacts/api-meta/test/operations/90/19.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":19,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/create/view/tags/job/1.0.0/buildWithParameters","descr":"описание","man":"руководство","cfsParams":[{"svcOperationCfsParamId":102,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Кластер Kubernetes, на котором будет развернут экземпляр","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":23,"svcOperationCfsParam":"s3Uid","label":"Услуга S3 для резервных копий.","dataType":"uuid","valueList":null,"refSvcId":12,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Экземпляр (учетная запись) S3 для резервного копирования. Резервное копирование обязательно","man":"Экземпляр (учетная запись) S3 для резервного копирования. Резервное копирование обязательно","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":82,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (milicores)","man":"Квота ядра пода (milicores)","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":81,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":"Квота памяти пода (MBytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":83,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":null,"valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":80,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":"^[1357]$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в кластере. 1,3,5,7","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":145,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделение белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний (белый) IP для доступа к master","man":"Выделяет внешний (белый) IP для доступа к master","sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":337,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации VIP master","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster. Пример: `internet-no-antiddos-v1`","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":146,"svcOperationCfsParam":"needExternalAddressSlave","label":"Выделение белого ip для slave ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний (белый) IP для доступа к slave. Будет работать, если slave в принципе есть","man":"Выделяет внешний (белый) IP для доступа к slave. Будет работать, если slave в принципе есть","sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":338,"svcOperationCfsParam":"ipSpaceNameSlave","label":"Имя ipSpace для публикации VIP slave","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP slave. Не может быть пустым, если включен needExternalAddressSlave","man":null,"sort":100,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":266,"svcOperationCfsParam":"ext_BACKUP_NUM_TO_RETAIN","label":"Количество резервных копий","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"7","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":99,"minvalue":1,"descr":null,"man":"Не обязательный. Количество сохраняемых бекапов","sort":140,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":265,"svcOperationCfsParam":"ext_BACKUP_SCHEDULE","label":"Расписание резервного копирования","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"0 0 * * *","defaultCompute":null,"func":null,"regex":"^((((\\d+,)+\\d+|(\\d+(\\/|-|#)\\d+)|(\\d+L?)|(\\*(\\/\\d+)?)|(L(-\\d+)?)|(\\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\\d+(ns|us|µs|ms|s|m|h))+)$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Не обязательный. Время запуска бекапа","sort":150,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":310,"svcOperationCfsParam":"appVersion","label":"Версия PostgreSQL","dataType":"string","valueList":["17","16","15","14","13"],"refSvcId":null,"isRequired":true,"defaultValue":"17","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия PostgreSQL","man":null,"sort":160,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":311,"svcOperationCfsParam":"jsonParameters","label":"Параметры postgresql.conf в виде JSON","dataType":"json","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"{ \"log_connections\": \"off\", \"log_disconnections\": \"off\" }","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":2048,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Массив переменных, более подробнее про настройку можно посмотреть https://www.postgresql.org/docs/current/runtime-config.html","man":null,"sort":170,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":312,"svcOperationCfsParam":"enablePgPoolerMaster","label":"Включить pgPooler для Master","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает pgPooler (на запись). Будет создан новый под","man":null,"sort":180,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":313,"svcOperationCfsParam":"enablePgPoolerSlave","label":"Включить pgPooler для Slave","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает pgPooler (на чтение). Будет создан новый под","man":null,"sort":190,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":314,"svcOperationCfsParam":"allowNoSSL","label":"Выключить sslmode","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"По умолчанию подключение обязательное (sslmode=require). Выставление в true отключит этот параметр","man":null,"sort":200,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":329,"svcOperationCfsParam":"autoScale","label":"Включить autoScale","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает автоскейлинг PV. При включении параметра необходимо настроить autoScalePercentage и autoScaleTechWindow. Алерт при срабатывании вызывает modify у текущей услуги","man":null,"sort":300,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":330,"svcOperationCfsParam":"autoScalePercentage","label":"На сколько % расширяться диск (мин. 1G)","dataType":"integer > 0","valueList":["10","15","20"],"refSvcId":null,"isRequired":true,"defaultValue":"10","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Требует включения autoScale. Позволяет указать в процентах расширение от текущего макс объема","man":null,"sort":310,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":331,"svcOperationCfsParam":"autoScaleTechWindow","label":"Тех окно обновления дисков","dataType":"integer >= 0","valueList":["0","5","12","23"],"refSvcId":null,"isRequired":true,"defaultValue":"0","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Требует включения autoScale. Окно обновления (пока не реализовано). Указывается час в виде Integer (0 / 5 / 12 / 23)","man":null,"sort":320,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":339,"svcOperationCfsParam":"autoScaleQuotaGb","label":"Квота для autoScale","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Квота для autoScale","man":null,"sort":330,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/90/20.json b/artifacts/api-meta/test/operations/90/20.json new file mode 100644 index 0000000..a7b1c23 --- /dev/null +++ b/artifacts/api-meta/test/operations/90/20.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":20,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/delete/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":457,"svcOperationCfsParam":"deleteS3Bucket","label":"Также удалить технический S3 Bucket с бэкапами?","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"true","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Также удалить технический S3 Bucket с бэкапами?","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/90/241.json b/artifacts/api-meta/test/operations/90/241.json new file mode 100644 index 0000000..97b4de1 --- /dev/null +++ b/artifacts/api-meta/test/operations/90/241.json @@ -0,0 +1 @@ +{"queryDurationMs":46,"svcOperation":{"svcOperationId":241,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/create_user/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":733,"svcOperationCfsParam":"username","label":"Имя создаваемого пользователя. Используется для подключения к базе и настройки прав.","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":740,"svcOperationCfsParam":"role","label":"Имя создаваемого роли","dataType":"string","valueList":["app_user","ddl_user"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать роль из списка","man":"`app_user` — стандартный пользователь с базовым набором прав
`ddl_user` — пользователь с расширенными правами, включая управление ролями и базами данных","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":47} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/90/244.json b/artifacts/api-meta/test/operations/90/244.json new file mode 100644 index 0000000..79bfcad --- /dev/null +++ b/artifacts/api-meta/test/operations/90/244.json @@ -0,0 +1 @@ +{"queryDurationMs":45,"svcOperation":{"svcOperationId":244,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/delete_user/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":739,"svcOperationCfsParam":"username","label":"Имя удаляемого пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `username-admin`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":45} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/90/245.json b/artifacts/api-meta/test/operations/90/245.json new file mode 100644 index 0000000..cde8c5f --- /dev/null +++ b/artifacts/api-meta/test/operations/90/245.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":245,"operation":"create_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/create_database/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":741,"svcOperationCfsParam":"dbName","label":"Имя создаваемой базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":742,"svcOperationCfsParam":"dbOwner","label":"Имя пользователя-владельца базы данных. Должен существовать в кластере","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/90/246.json b/artifacts/api-meta/test/operations/90/246.json new file mode 100644 index 0000000..5ce11c9 --- /dev/null +++ b/artifacts/api-meta/test/operations/90/246.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svcOperation":{"svcOperationId":246,"operation":"delete_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/delete_database/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":743,"svcOperationCfsParam":"dbName","label":"Название удаляемой базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/90/47.json b/artifacts/api-meta/test/operations/90/47.json new file mode 100644 index 0000000..f82ba1b --- /dev/null +++ b/artifacts/api-meta/test/operations/90/47.json @@ -0,0 +1 @@ +{"queryDurationMs":45,"svcOperation":{"svcOperationId":47,"operation":"recovery","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/recovery/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":131,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":88,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili)
","man":"Квота ядра пода (Указывается в mili)
","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":87,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)
","man":"Квота памяти пода (Указывается в Megabytes)
","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":89,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":86,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети
","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":45} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/90/48.json b/artifacts/api-meta/test/operations/90/48.json new file mode 100644 index 0000000..aba4fec --- /dev/null +++ b/artifacts/api-meta/test/operations/90/48.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svcOperation":{"svcOperationId":48,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/modify/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":93,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (milicores)","man":"Квота ядра пода (milicores)","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":92,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":"Квота памяти пода (MBytes)","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":94,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":91,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":147,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделение белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP для доступа к master","man":"Выделяет внешний IP для доступа к master","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":541,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации VIP master","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster. Пример: `internet-no-antiddos-v1`","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":148,"svcOperationCfsParam":"needExternalAddressSlave","label":"Выделение белого ip для slave ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP для доступа к slave. Действует, если slave в принципе есть","man":"Выделяет внешний IP для доступа к slave. Действует, если slave в принципе есть","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":542,"svcOperationCfsParam":"ipSpaceNameSlave","label":"Имя ipSpace для публикации VIP slave","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP slave. Не может быть пустым, если включен needExternalAddressSlave","man":null,"sort":80,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":267,"svcOperationCfsParam":"ext_BACKUP_SCHEDULE","label":"Расписание резервного копирования","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^((((\\d+,)+\\d+|(\\d+(\\/|-|#)\\d+)|(\\d+L?)|(\\*(\\/\\d+)?)|(L(-\\d+)?)|(\\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\\d+(ns|us|µs|ms|s|m|h))+)$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":"Не обязательный. Время запуска бекапа","sort":90,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":268,"svcOperationCfsParam":"ext_BACKUP_NUM_TO_RETAIN","label":"Количество резервных копий","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":99,"minvalue":1,"descr":null,"man":"Не обязательный. Количество сохраняемых бекапов","sort":100,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":315,"svcOperationCfsParam":"appVersion","label":"Версия PostgreSQL","dataType":"string","valueList":["17","16","15","14","13"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия PostgreSQL. Нельзя опускать вниз","man":null,"sort":110,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":316,"svcOperationCfsParam":"jsonParameters","label":"Параметры postgresql.conf в виде JSON","dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":2048,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Массив переменных, более подробнее про настройку можно посмотреть https://www.postgresql.org/docs/current/runtime-config.html","man":null,"sort":120,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":317,"svcOperationCfsParam":"enablePgPoolerMaster","label":"Включить pgPooler для Master","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает pgPooler (на запись). Будет создан новый под","man":null,"sort":130,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":318,"svcOperationCfsParam":"enablePgPoolerSlave","label":"Включить pgPooler для Slave","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Включает pgPooler (на чтение). Будет создан новый под","man":null,"sort":140,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":319,"svcOperationCfsParam":"allowNoSSL","label":"Выключить sslmode","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"По умолчанию подключение обязательное (sslmode=require). Выставление в true отключит этот параметр","man":null,"sort":150,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/90/54.json b/artifacts/api-meta/test/operations/90/54.json new file mode 100644 index 0000000..51f26e8 --- /dev/null +++ b/artifacts/api-meta/test/operations/90/54.json @@ -0,0 +1 @@ +{"queryDurationMs":42,"svcOperation":{"svcOperationId":54,"operation":"restart","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/restart/view/tags/job/1.0.0/buildWithParameters","descr":"ВНИМАНИЕ - Редеплой предполагает УДАЛЕНИЕ подов.
Может быть полная поломка. Крайне осторожно запускать при работе.
Нет возможности нормально мигрировать на другую платформу средствами Redeploy, так как есть привязка к S3.
Поэтому если нужно смигрировать на другой кластер Kubernetes - использовать необходимо Restore","man":"ВНИМАНИЕ - Рестарт предполагает УДАЛЕНИЕ подов.
Может быть полная поломка. Крайне осторожно запускать при работе","cfsParams":[]},"runDurationMs":42} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/91.list b/artifacts/api-meta/test/operations/91.list new file mode 100644 index 0000000..14b4bee --- /dev/null +++ b/artifacts/api-meta/test/operations/91.list @@ -0,0 +1,2 @@ +delete 22 +create 21 diff --git a/artifacts/api-meta/test/operations/91/21.json b/artifacts/api-meta/test/operations/91/21.json new file mode 100644 index 0000000..d2f0554 --- /dev/null +++ b/artifacts/api-meta/test/operations/91/21.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svcOperation":{"svcOperationId":21,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Redis/job/create/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":182,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения
","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":112,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1000","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":500,"descr":"Квота ядра пода (Указывается в mili)","man":"Квота ядра пода (Указывается в mili)","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":113,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1024","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":512,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":114,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"30","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":10,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":181,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети. Если выделить больше 1 ноды, будет добавлено дополнительно 3 Sentinel ноды","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":183,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделение белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP для доступа к master","man":"Выделяет внешний IP для доступа к master","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":184,"svcOperationCfsParam":"needExternalAddressSlave","label":"Выделение белого ip для slave ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний IP для доступа к slave. Будет работать если slave в целом есть","man":"Выделяет внешний IP для доступа к slave. Будет работать если slave в целом есть","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":548,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации VIP master","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":549,"svcOperationCfsParam":"ipSpaceNameSlave","label":"Имя ipSpace для публикации VIP slave","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Имя ipSpace для публикации VIP slave. Не может быть пустым, если включен needExternalAddressSlave","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/91/22.json b/artifacts/api-meta/test/operations/91/22.json new file mode 100644 index 0000000..45b6dec --- /dev/null +++ b/artifacts/api-meta/test/operations/91/22.json @@ -0,0 +1 @@ +{"queryDurationMs":71,"svcOperation":{"svcOperationId":22,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Redis/job/delete/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":71} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/92.list b/artifacts/api-meta/test/operations/92.list new file mode 100644 index 0000000..0462b3b --- /dev/null +++ b/artifacts/api-meta/test/operations/92.list @@ -0,0 +1,8 @@ +delete 190 +suspend 194 +create 37 +modify_user 200 +delete_user 199 +resume 196 +create_user 198 +modify 201 diff --git a/artifacts/api-meta/test/operations/92/190.json b/artifacts/api-meta/test/operations/92/190.json new file mode 100644 index 0000000..b4790bd --- /dev/null +++ b/artifacts/api-meta/test/operations/92/190.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":190,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/MongoDB/job/delete/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/92/194.json b/artifacts/api-meta/test/operations/92/194.json new file mode 100644 index 0000000..e8fd4c1 --- /dev/null +++ b/artifacts/api-meta/test/operations/92/194.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":194,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/MongoDB/job/suspend/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/92/196.json b/artifacts/api-meta/test/operations/92/196.json new file mode 100644 index 0000000..516126c --- /dev/null +++ b/artifacts/api-meta/test/operations/92/196.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":196,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/MongoDB/job/resume/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/92/198.json b/artifacts/api-meta/test/operations/92/198.json new file mode 100644 index 0000000..8ec74e6 --- /dev/null +++ b/artifacts/api-meta/test/operations/92/198.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":198,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/MongoDB/job/create_user/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":635,"svcOperationCfsParam":"username","label":"Имя пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":636,"svcOperationCfsParam":"dbName","label":"Имя базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":643,"svcOperationCfsParam":"role","label":"Имя роли","dataType":"string","valueList":["dbOwner","read","readWrite"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/92/199.json b/artifacts/api-meta/test/operations/92/199.json new file mode 100644 index 0000000..f5a2b25 --- /dev/null +++ b/artifacts/api-meta/test/operations/92/199.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":199,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/MongoDB/job/delete_user/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":644,"svcOperationCfsParam":"username","label":"Имя пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/92/200.json b/artifacts/api-meta/test/operations/92/200.json new file mode 100644 index 0000000..634fa2e --- /dev/null +++ b/artifacts/api-meta/test/operations/92/200.json @@ -0,0 +1 @@ +{"queryDurationMs":47,"svcOperation":{"svcOperationId":200,"operation":"modify_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/MongoDB/job/modify_user/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":640,"svcOperationCfsParam":"username","label":"Имя пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":641,"svcOperationCfsParam":"dbName","label":"Имя базы данных","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":642,"svcOperationCfsParam":"role","label":"Имя роли","dataType":"string","valueList":["dbOwner","read","readWrite"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":47} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/92/201.json b/artifacts/api-meta/test/operations/92/201.json new file mode 100644 index 0000000..cfb8622 --- /dev/null +++ b/artifacts/api-meta/test/operations/92/201.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":201,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/MongoDB/job/modify/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":648,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов в сети","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `2`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":649,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Mb)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `2048`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":650,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (mCPU)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `1000`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":651,"svcOperationCfsParam":"resourceDisk","label":"Размер диска(Gb)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `20`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":652,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделяет внешний IP для доступа к master","dataType":"boolean","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Флаг, определяющий, нужно ли выделять внешний IP для доступа к master. Пример: `true` или `false`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":653,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/92/37.json b/artifacts/api-meta/test/operations/92/37.json new file mode 100644 index 0000000..1808965 --- /dev/null +++ b/artifacts/api-meta/test/operations/92/37.json @@ -0,0 +1 @@ +{"queryDurationMs":44,"svcOperation":{"svcOperationId":37,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/MongoDB/job/create/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":487,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов в сети","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `2`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":595,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать платформу из списка","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":588,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Mb)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":500,"descr":"Пример: `2048`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":589,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (mCPU)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `1000`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":590,"svcOperationCfsParam":"resourceDisk","label":"Размер диска(Gb)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `20`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":645,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделяет внешний IP для доступа к master","dataType":"boolean","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-брокеру. Пример: `true` или `false`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":646,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации VIP master. Не может быть пустым, если включен needExternalAddressMaster","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":45} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/93.list b/artifacts/api-meta/test/operations/93.list new file mode 100644 index 0000000..501755b --- /dev/null +++ b/artifacts/api-meta/test/operations/93.list @@ -0,0 +1,5 @@ +delete 39 +create 38 +modify 106 +resume 117 +suspend 116 diff --git a/artifacts/api-meta/test/operations/93/106.json b/artifacts/api-meta/test/operations/93/106.json new file mode 100644 index 0000000..2881894 --- /dev/null +++ b/artifacts/api-meta/test/operations/93/106.json @@ -0,0 +1 @@ +{"queryDurationMs":47,"svcOperation":{"svcOperationId":106,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Rabbitmq/job/modify/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":304,"svcOperationCfsParam":"resourceCPU","label":"Квота(millicore) ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":500,"descr":"Пример: `2000`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":306,"svcOperationCfsParam":"resourceDisk","label":"Квота (gigabyte) диска для контейнера","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Пример: `20`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":305,"svcOperationCfsParam":"resourceMemory","label":"Квота(megabyte) памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":512,"descr":"Пример: `2048`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":307,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `1`","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":308,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделение белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний (белый) IP для доступа к master","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":309,"svcOperationCfsParam":"needExternalAddressSlave","label":"Выделение белого ip для slave ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выделяет внешний (белый) IP для доступа к slave","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":545,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Если выделяеться внешний IP для master-node, то поле необходимо заполнить.","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `internet-no-antiddos-v1`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":546,"svcOperationCfsParam":"ipSpaceNameSlave","label":"Если выделяеться внешний IP для slave-node, то поле необходимо заполнить.","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `internet-no-antiddos-v1`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":47} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/93/116.json b/artifacts/api-meta/test/operations/93/116.json new file mode 100644 index 0000000..9964ef8 --- /dev/null +++ b/artifacts/api-meta/test/operations/93/116.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svcOperation":{"svcOperationId":116,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Rabbitmq/job/suspend/view/tags/job/1.0.0/buildWithParameters","descr":"Остановка сервиса путем применения манифеста с нолевой репликой","man":"Пока не работает из за того что RabbitmqCluster нельзя занулить","cfsParams":[]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/93/117.json b/artifacts/api-meta/test/operations/93/117.json new file mode 100644 index 0000000..1155704 --- /dev/null +++ b/artifacts/api-meta/test/operations/93/117.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":117,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Rabbitmq/job/resume/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/93/38.json b/artifacts/api-meta/test/operations/93/38.json new file mode 100644 index 0000000..b28d0e3 --- /dev/null +++ b/artifacts/api-meta/test/operations/93/38.json @@ -0,0 +1 @@ +{"queryDurationMs":41,"svcOperation":{"svcOperationId":38,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Rabbitmq/job/create/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":119,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать платформу из списка","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":116,"svcOperationCfsParam":"resourceCPU","label":"Квота(millicore) ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1000","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":500,"descr":"Пример: `2000`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":117,"svcOperationCfsParam":"resourceMemory","label":"Квота(megabyte) памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1124","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":512,"descr":"Пример: `2048`","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":118,"svcOperationCfsParam":"resourceDisk","label":"Размер(gigabyte) диска для базы данных","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"30","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":5,"descr":"Пример: `20`","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":224,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Пример: `1`","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":225,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделение белого ip для master ноды","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Флаг, определяющий, нужно ли выделять внешний IP для доступа к master. Пример: `true` или `false`","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":543,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Если выделяеться внешний IP для master-node, то поле необходимо заполнить.","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `internet-no-antiddos-v1`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":42} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/93/39.json b/artifacts/api-meta/test/operations/93/39.json new file mode 100644 index 0000000..3f168b3 --- /dev/null +++ b/artifacts/api-meta/test/operations/93/39.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":39,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Rabbitmq/job/delete/view/tags/job/1.0.0/buildWithParameters","descr":"Для удаления нужно подождать 15 мин или зайти в состояние suspend и поправить время на 15 мин назад","man":null,"cfsParams":[]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/94.list b/artifacts/api-meta/test/operations/94.list new file mode 100644 index 0000000..76c010e --- /dev/null +++ b/artifacts/api-meta/test/operations/94.list @@ -0,0 +1,7 @@ +modify 55 +redeploy 53 +delete 50 +create 49 +suspend 96 +resume 95 +restart 163 diff --git a/artifacts/api-meta/test/operations/94/163.json b/artifacts/api-meta/test/operations/94/163.json new file mode 100644 index 0000000..f67927a --- /dev/null +++ b/artifacts/api-meta/test/operations/94/163.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":163,"operation":"restart","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Lucee/job/restart/view/tags/job/0.0.15/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/94/49.json b/artifacts/api-meta/test/operations/94/49.json new file mode 100644 index 0000000..09ca7fd --- /dev/null +++ b/artifacts/api-meta/test/operations/94/49.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":49,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Lucee/job/create/view/tags/job/0.0.15/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":103,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":"provider","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":108,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":106,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"300","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (milicores)","man":"Квота ядра пода (milicores)","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":107,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":"Квота памяти пода (MBytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":139,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":104,"svcOperationCfsParam":"gitPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"https://github.com/xahys/testlucee","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до Git, который будет webroot для сайта","man":"Путь до Git, который будет webroot для сайта","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":105,"svcOperationCfsParam":"jsonEnv","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"{ \"param\": \"value\" }","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":2048,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Здесь вы можете задать переменные среды в формате KEY=VALUE. Они будут доступны внутри вашего приложения.","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":132,"svcOperationCfsParam":"healthPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код","man":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код","sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":263,"svcOperationCfsParam":"appVersion","label":"Версия Lucee","dataType":"string","valueList":["5.4","6.0"],"refSvcId":null,"isRequired":true,"defaultValue":"5.4","defaultCompute":null,"func":null,"regex":"^\\d+(\\.\\d+){1,2}(-[a-zA-Z0-9\\.]+)?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия Lucee","man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/94/50.json b/artifacts/api-meta/test/operations/94/50.json new file mode 100644 index 0000000..ff4535c --- /dev/null +++ b/artifacts/api-meta/test/operations/94/50.json @@ -0,0 +1 @@ +{"queryDurationMs":57,"svcOperation":{"svcOperationId":50,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Lucee/job/delete/view/tags/job/0.0.15/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":57} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/94/53.json b/artifacts/api-meta/test/operations/94/53.json new file mode 100644 index 0000000..564f1e8 --- /dev/null +++ b/artifacts/api-meta/test/operations/94/53.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svcOperation":{"svcOperationId":53,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Lucee/job/redeploy/view/tags/job/0.0.15/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":257,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/94/55.json b/artifacts/api-meta/test/operations/94/55.json new file mode 100644 index 0000000..e108b2e --- /dev/null +++ b/artifacts/api-meta/test/operations/94/55.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":55,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Lucee/job/modify/view/tags/job/0.0.15/buildWithParameters","descr":"Если CFS оставить пустым, то при запуске джобы берётся параметр из instanceData","man":"Если CFS оставить пустым, то при запуске джобы берётся параметр из instanceData","cfsParams":[{"svcOperationCfsParamId":136,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili) 1000Mili = 1 ядро","man":"Квота ядра пода (Указывается в mili)","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":137,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":138,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":135,"svcOperationCfsParam":"jsonEnv","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":2048,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Массив переменных, будут переданы в env приложения","man":"Массив переменных, будут переданы в env приложения","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":133,"svcOperationCfsParam":"gitPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до Git, который будет webroot для сайта","man":"Путь до Git, который будет webroot для сайта","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":134,"svcOperationCfsParam":"healthPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код.","man":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код.","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":264,"svcOperationCfsParam":"appVersion","label":null,"dataType":"string","valueList":["5.4","6.0"],"refSvcId":null,"isRequired":true,"defaultValue":"5.4","defaultCompute":null,"func":null,"regex":"^\\d+(\\.\\d+){1,2}(-[a-zA-Z0-9\\.]+)?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":null,"man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/94/95.json b/artifacts/api-meta/test/operations/94/95.json new file mode 100644 index 0000000..d8d491b --- /dev/null +++ b/artifacts/api-meta/test/operations/94/95.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":95,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Lucee/job/resume/view/tags/job/0.0.15/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/94/96.json b/artifacts/api-meta/test/operations/94/96.json new file mode 100644 index 0000000..72df94e --- /dev/null +++ b/artifacts/api-meta/test/operations/94/96.json @@ -0,0 +1 @@ +{"queryDurationMs":46,"svcOperation":{"svcOperationId":96,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Lucee/job/suspend/view/tags/job/0.0.15/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":46} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/95.list b/artifacts/api-meta/test/operations/95.list new file mode 100644 index 0000000..09785fd --- /dev/null +++ b/artifacts/api-meta/test/operations/95.list @@ -0,0 +1,6 @@ +create 58 +delete 61 +modify 59 +redeploy 60 +suspend 120 +resume 121 diff --git a/artifacts/api-meta/test/operations/95/120.json b/artifacts/api-meta/test/operations/95/120.json new file mode 100644 index 0000000..95e6803 --- /dev/null +++ b/artifacts/api-meta/test/operations/95/120.json @@ -0,0 +1 @@ +{"queryDurationMs":43,"svcOperation":{"svcOperationId":120,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Node/job/suspend/view/tags/job/0.0.11/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":43} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/95/121.json b/artifacts/api-meta/test/operations/95/121.json new file mode 100644 index 0000000..20d6deb --- /dev/null +++ b/artifacts/api-meta/test/operations/95/121.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":121,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Node/job/resume/view/tags/job/0.0.11/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/95/58.json b/artifacts/api-meta/test/operations/95/58.json new file mode 100644 index 0000000..73dcef5 --- /dev/null +++ b/artifacts/api-meta/test/operations/95/58.json @@ -0,0 +1 @@ +{"queryDurationMs":44,"svcOperation":{"svcOperationId":58,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Node/job/create/view/tags/job/0.0.11/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":149,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Наименование поддомена, будет добавлено в nodejs.dev.nubes.ru","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":156,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":153,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (milicores). 1000Mili = 1 Ядро","man":"Квота ядра пода (milicores). 1000Mili = 1 Ядро","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":154,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1024","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":"Квота памяти пода (MBytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":155,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":150,"svcOperationCfsParam":"gitPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"https://github.com/xahys/testnode.git","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до Git, который будет webroot для сайта","man":"Путь до Git, который будет webroot для сайта","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":152,"svcOperationCfsParam":"jsonEnv","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Массив переменных, будут переданы в env приложения","man":"Массив переменных, будут переданы в env приложения","sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":151,"svcOperationCfsParam":"healthPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код. Если оставить пустым, healtcheck'а не будет","man":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код. Если оставить пустым, healtcheck'а не будет","sort":80,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":270,"svcOperationCfsParam":"appVersion","label":null,"dataType":"string","valueList":["18","20","22","23"],"refSvcId":null,"isRequired":true,"defaultValue":"23","defaultCompute":null,"func":null,"regex":"^(\\d){2}$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия приложения","man":null,"sort":90,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":45} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/95/59.json b/artifacts/api-meta/test/operations/95/59.json new file mode 100644 index 0000000..9ce2106 --- /dev/null +++ b/artifacts/api-meta/test/operations/95/59.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":59,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Node/job/modify/view/tags/job/0.0.11/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":160,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili) 1000Mili = 1 ядро","man":"Квота ядра пода (Указывается в mili) 1000Mili = 1 ядро","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":161,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":162,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":159,"svcOperationCfsParam":"jsonEnv","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":2048,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Массив переменных, будут переданы в env приложения","man":"Массив переменных, будут переданы в env приложения","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":157,"svcOperationCfsParam":"gitPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до Git, который будет webroot для сайта","man":"Путь до Git, который будет webroot для сайта","sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":158,"svcOperationCfsParam":"healthPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код.","man":"Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код.","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":271,"svcOperationCfsParam":"appVersion","label":null,"dataType":"string","valueList":["18","20","22","23"],"refSvcId":null,"isRequired":true,"defaultValue":"23","defaultCompute":null,"func":null,"regex":"^(\\d){2}$","uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Версия приложения","man":"Версия приложения","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/95/60.json b/artifacts/api-meta/test/operations/95/60.json new file mode 100644 index 0000000..438066a --- /dev/null +++ b/artifacts/api-meta/test/operations/95/60.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":60,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Node/job/redeploy/view/tags/job/0.0.11/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":258,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/95/61.json b/artifacts/api-meta/test/operations/95/61.json new file mode 100644 index 0000000..b1cb902 --- /dev/null +++ b/artifacts/api-meta/test/operations/95/61.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svcOperation":{"svcOperationId":61,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Node/job/delete/view/tags/job/0.0.11/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/96.list b/artifacts/api-meta/test/operations/96.list new file mode 100644 index 0000000..a254658 --- /dev/null +++ b/artifacts/api-meta/test/operations/96.list @@ -0,0 +1,6 @@ +delete 63 +create 62 +redeploy 65 +modify 64 +suspend 122 +resume 123 diff --git a/artifacts/api-meta/test/operations/96/122.json b/artifacts/api-meta/test/operations/96/122.json new file mode 100644 index 0000000..07c9166 --- /dev/null +++ b/artifacts/api-meta/test/operations/96/122.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":122,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgadmin/job/suspend/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/96/123.json b/artifacts/api-meta/test/operations/96/123.json new file mode 100644 index 0000000..4881f6e --- /dev/null +++ b/artifacts/api-meta/test/operations/96/123.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svcOperation":{"svcOperationId":123,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgadmin/job/resume/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/96/62.json b/artifacts/api-meta/test/operations/96/62.json new file mode 100644 index 0000000..d89bbf9 --- /dev/null +++ b/artifacts/api-meta/test/operations/96/62.json @@ -0,0 +1 @@ +{"queryDurationMs":44,"svcOperation":{"svcOperationId":62,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgadmin/job/create/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":164,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":"provider","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":169,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":165,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"200","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (milicores). 1000Mili = 1 Ядро","man":"Квота ядра пода (milicores). 1000Mili = 1 Ядро","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":166,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"256","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":"Квота памяти пода (MBytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":167,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":170,"svcOperationCfsParam":"login","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":"^([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\\.[a-zA-Z0-9_-]+)$","uniqueScope":null,"maxlength":255,"minlength":3,"maxvalue":null,"minvalue":null,"descr":"Логин для подключения к pgAdmin, в формате email (login@email.net)","man":"Логин для подключения к pgAdmin, в формате email (login@email.net)","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":171,"svcOperationCfsParam":"password","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пароль для подключения к pgAdmin","man":"Пароль для подключения к pgAdmin","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":true}]},"runDurationMs":45} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/96/63.json b/artifacts/api-meta/test/operations/96/63.json new file mode 100644 index 0000000..6082ebd --- /dev/null +++ b/artifacts/api-meta/test/operations/96/63.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":63,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgadmin/job/delete/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/96/64.json b/artifacts/api-meta/test/operations/96/64.json new file mode 100644 index 0000000..5907a41 --- /dev/null +++ b/artifacts/api-meta/test/operations/96/64.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svcOperation":{"svcOperationId":64,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgadmin/job/modify/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":172,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро","man":"Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":173,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (MBytes)","man":"Квота памяти пода (MBytes)","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":174,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/96/65.json b/artifacts/api-meta/test/operations/96/65.json new file mode 100644 index 0000000..1fdfaba --- /dev/null +++ b/artifacts/api-meta/test/operations/96/65.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svcOperation":{"svcOperationId":65,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgadmin/job/redeploy/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":277,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/97.list b/artifacts/api-meta/test/operations/97.list new file mode 100644 index 0000000..152aee1 --- /dev/null +++ b/artifacts/api-meta/test/operations/97.list @@ -0,0 +1,2 @@ +create 72 +delete 73 diff --git a/artifacts/api-meta/test/operations/97/72.json b/artifacts/api-meta/test/operations/97/72.json new file mode 100644 index 0000000..1458c73 --- /dev/null +++ b/artifacts/api-meta/test/operations/97/72.json @@ -0,0 +1 @@ +{"queryDurationMs":46,"svcOperation":{"svcOperationId":72,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/NodeRed/job/create/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":197,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":"provider","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Наименование поддомена, будет добавлено в k8stemplate.dev.nubes.ru","man":"Наименование поддомена, будет добавлено в k8stemplate.dev.nubes.ru","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":196,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":193,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":194,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":323,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":195,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":47} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/97/73.json b/artifacts/api-meta/test/operations/97/73.json new file mode 100644 index 0000000..d2302e4 --- /dev/null +++ b/artifacts/api-meta/test/operations/97/73.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":73,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/NodeRed/job/delete/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/98.list b/artifacts/api-meta/test/operations/98.list new file mode 100644 index 0000000..5b3ce46 --- /dev/null +++ b/artifacts/api-meta/test/operations/98.list @@ -0,0 +1,6 @@ +modify 81 +delete 78 +redeploy 79 +create 77 +resume 130 +suspend 131 diff --git a/artifacts/api-meta/test/operations/98/130.json b/artifacts/api-meta/test/operations/98/130.json new file mode 100644 index 0000000..9e6191b --- /dev/null +++ b/artifacts/api-meta/test/operations/98/130.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":130,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SimpleHttpContainer/job/resume/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/98/131.json b/artifacts/api-meta/test/operations/98/131.json new file mode 100644 index 0000000..90d553a --- /dev/null +++ b/artifacts/api-meta/test/operations/98/131.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svcOperation":{"svcOperationId":131,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SimpleHttpContainer/job/suspend/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/98/77.json b/artifacts/api-meta/test/operations/98/77.json new file mode 100644 index 0000000..d26ca93 --- /dev/null +++ b/artifacts/api-meta/test/operations/98/77.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":77,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SimpleHttpContainer/job/create/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":212,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":"provider","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":216,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":"Наименование кластера Kubernetes для подключения","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":213,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"100","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":"Квота ядра пода (Указывается в mili)","man":"Квота ядра пода (Указывается в mili)","sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":214,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"200","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":215,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество реплик приложения. Трафик будет распределяться между подами в режиме Round-Robin","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":217,"svcOperationCfsParam":"registryPath","label":null,"dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"nexus-sa.tst.nubes.ru/docker-nubes/jolt","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Путь до image, который будет установлен как deployment","man":"Путь до image, который будет установлен как deployment","sort":60,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":241,"svcOperationCfsParam":"jsonEnv","label":null,"dataType":"json","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":"{"param": "value"}","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Массив переменных, будут переданы в env приложения","man":"Массив переменных, будут переданы в env приложения","sort":70,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/98/78.json b/artifacts/api-meta/test/operations/98/78.json new file mode 100644 index 0000000..baae65b --- /dev/null +++ b/artifacts/api-meta/test/operations/98/78.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":78,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SimpleHttpContainer/job/delete/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":54} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/98/79.json b/artifacts/api-meta/test/operations/98/79.json new file mode 100644 index 0000000..d1a2101 --- /dev/null +++ b/artifacts/api-meta/test/operations/98/79.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":79,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SimpleHttpContainer/job/redeploy/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":272,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Платформа для развертывания","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/98/81.json b/artifacts/api-meta/test/operations/98/81.json new file mode 100644 index 0000000..3f6039f --- /dev/null +++ b/artifacts/api-meta/test/operations/98/81.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svcOperation":{"svcOperationId":81,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SimpleHttpContainer/job/modify/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":218,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":100,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":219,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":128,"descr":null,"man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":220,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/99.list b/artifacts/api-meta/test/operations/99.list new file mode 100644 index 0000000..f597eab --- /dev/null +++ b/artifacts/api-meta/test/operations/99.list @@ -0,0 +1,5 @@ +create 82 +delete 83 +modify 91 +suspend 126 +resume 127 diff --git a/artifacts/api-meta/test/operations/99/126.json b/artifacts/api-meta/test/operations/99/126.json new file mode 100644 index 0000000..45f6f06 --- /dev/null +++ b/artifacts/api-meta/test/operations/99/126.json @@ -0,0 +1 @@ +{"queryDurationMs":47,"svcOperation":{"svcOperationId":126,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Gitea/job/suspend/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":47} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/99/127.json b/artifacts/api-meta/test/operations/99/127.json new file mode 100644 index 0000000..7d3ea64 --- /dev/null +++ b/artifacts/api-meta/test/operations/99/127.json @@ -0,0 +1 @@ +{"queryDurationMs":47,"svcOperation":{"svcOperationId":127,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Gitea/job/resume/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":47} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/99/82.json b/artifacts/api-meta/test/operations/99/82.json new file mode 100644 index 0000000..c00e5c6 --- /dev/null +++ b/artifacts/api-meta/test/operations/99/82.json @@ -0,0 +1 @@ +{"queryDurationMs":52,"svcOperation":{"svcOperationId":82,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Gitea/job/create/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":238,"svcOperationCfsParam":"psqlUid","label":null,"dataType":"uuid","valueList":null,"refSvcId":90,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"UUID Услуги k8sPgsql. Пользователя techGitea, базу данных gitea создаёт автоматически","man":"UUID Услуги k8sPgsql. Пользователя techGitea, базу данных gitea создаёт автоматически","sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":237,"svcOperationCfsParam":"domain","label":"Имя домена","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"web01","defaultCompute":"display_name","func":null,"regex":"^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","uniqueScope":"provider","maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","man":"Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm","sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":232,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"500","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":300,"descr":"Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро","man":"Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро","sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":233,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"512","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":256,"descr":"Квота памяти пода (Указывается в Megabytes)","man":"Квота памяти пода (Указывается в Megabytes)","sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":234,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":235,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/99/83.json b/artifacts/api-meta/test/operations/99/83.json new file mode 100644 index 0000000..7bb8f65 --- /dev/null +++ b/artifacts/api-meta/test/operations/99/83.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svcOperation":{"svcOperationId":83,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Gitea/job/delete/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/test/operations/99/91.json b/artifacts/api-meta/test/operations/99/91.json new file mode 100644 index 0000000..0d78d70 --- /dev/null +++ b/artifacts/api-meta/test/operations/99/91.json @@ -0,0 +1 @@ +{"queryDurationMs":54,"svcOperation":{"svcOperationId":91,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Gitea/job/modify/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":259,"svcOperationCfsParam":"resourceCPU","label":"Квота ядра пода (Указывается в mili)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"100","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":4000,"minvalue":500,"descr":"Квота ядра пода (Указывается в mili). 1000Mili = 1 Ядро","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":260,"svcOperationCfsParam":"resourceMemory","label":"Квота памяти пода (Указывается в Megabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"128","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":8192,"minvalue":256,"descr":"Квота памяти пода (Указывается в Megabytes)","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":261,"svcOperationCfsParam":"resourceDisk","label":"Размер диска для базы данных (Gigabytes)","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":999,"minvalue":1,"descr":"Квота диска (Указывается в GIGAbytes)","man":"Квота диска (Указывается в GIGAbytes)","sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":262,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":"1","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":7,"minvalue":1,"descr":"Количество узлов","man":"Количество узлов в сети","sort":40,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/test/services.json b/artifacts/api-meta/test/services.json new file mode 100644 index 0000000..76988b3 --- /dev/null +++ b/artifacts/api-meta/test/services.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"total":44,"resultSetSize":44,"pageSize":100,"page":1,"orderBy":"","size":44,"results":[{"isProductionReady":true,"man":"Перед разворачиванием убедиться, что в облаке есть 2 свободных невыделенных IP в пуле","dtUpdated":"2025-08-26T15:48:07.904+0300","version":"1.0.1","sort":null,"dtCreated":"2025-06-09T15:37:50.547+0300","svcShort":"k8sSthutrvalCluster","resourceRealmTypeId":3,"code":"paas.k8s.stw","orchestratorName":"SthutrvalCluster","svcId":150,"svc":"Kubernetes кластер Штурвал","svcExtendedName":"Kubernetes кластер Штурвал k8sSthutrvalCluster ","descr":"Платформа управления K8s
","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"# Инструкция по развертыванию Тенант Valo через платформу

## 1. Общая информация
Тенант Valo — логический изолированный экземпляр сервиса VALO Cloud, предоставляющий защищённое облачное хранилище, синхронизацию данных и доступ к документам с различных устройств. При создании тенант автоматически разворачивается в тестовом режиме сроком на 2 месяца. Перевод в промышленную эксплуатацию выполняется отдельной операцией.

### Доступные операции

* **create** — создание нового тенанта в тестовом режиме сроком на 2 месяца.
* **modify** — изменение настроек тенанта, включая перевод из ТЕСТ в ПРОД.
* **suspend** — выключение (приостановка работы) тенанта.
* **resume** — включение ранее приостановленного тенанта.
* **delete** — удаление тенанта; доступно только после выполнения операции suspend.

---

## 2. Параметры развертывания

Параметры входных данных операции **create**:

### Платформа для развертывания
Описание: платформа, на которой будет создан тенант.
Пример значения: `valo.ngcloud.ru`.

### DNS-Префикс
Описание: Будет добавлено в зону valo.ngcloud.ru
Пример значения: `mysimpledomain`.

### Параметры хранилища
Описание: Сколько места будет выделено под использование в тенанте. Данные хранятся в S3. Размер указывается в Gigabytes
Пример значения: `10`.

### Настройки тенанта
Описание: Ряд конфигурации Valo-тенанта, такие как настройки пользователя и доступного функционала
Пример значения: `опционально в рамках настройки`.

---

## 3. Рекомендованные характеристики

### Тестовое окружение
Достаточно развернуть тенант в ТЕСТ. Срок предоставляется в 2 месяца. По истечению срока тенант автоматически переводится в `suspend` на стороне ресурсной платформы

### Промышленное окружение
Для разблокировки используйте операцию `modify`

---

## 4. Выходные параметры

Услуга предоставляет следующие выходные параметры (формируются в процессе операций):

### Статус тенанта
Отражает текущее состояние и параметры.

---

## 5. Дополнительная информация
Тенант всегда создаётся в режиме ТЕСТ и не может быть сразу переведён в ПРОД без операции modify.
Удаление тенанта возможно только после его выключения с помощью операции suspend.
Срок тестового режима составляет 2 месяца с момента создания.
Операции suspend и resume используются для временного управления доступностью сервиса без потери конфигурации.
","dtUpdated":"2026-01-30T11:52:53.792+0300","version":"0.0.1","sort":null,"dtCreated":"2025-12-04T18:48:01.093+0300","svcShort":"valoTenant","resourceRealmTypeId":8,"code":null,"orchestratorName":"Tenant","svcId":149,"svc":"VALO Cloud","svcExtendedName":"VALO Cloud valoTenant ","descr":"Корпоративная система обмена и синхронизации файлов","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"# Инструкция по управлению кластерами и пользователями ClickHouse

---

## Общая информация

ClickHouse — это колоночная система управления базами данных, предназначенная для обработки аналитических запросов в реальном времени. Платформа позволяет создавать, удалять, приостанавливать и возобновлять кластеры ClickHouse, а также управлять базами данных и пользователями.

Кластер создаётся через оператор Altinity (`https://github.com/Altinity/clickhouse-operator`) в ресурсной платформе типа `k8s`

Кластеры могут создаваться шардированными с произвольным количеством реплик. Для обеспечения отказоустойчивости и координации обязательно включение параметра `Создать ClickHouse-Keeper`.

Кластера создаются с обязательным бекапом. Для этого необходимо предварительно создать услугу `S3 Object Storage`.
---

## Доступные операции

* **create** — Создание кластера
* **delete** — Удаление кластера
* **suspend** — Приостановка работы кластера
* **resume** — Возобновление работы кластера
* **create_database** — Создание базы данных
* **delete_database** — Удаление базы данных
* **create_user** — Создание пользователя и настройка прав доступа к базе данных
* **delete_user** — Удаление пользователя

## Процесс создания и первого подключения

1. Выполнить операцию `create` - будет создан кластер
2. Выполнить операцию `create_database` - будет создана база данных
3. Выполнить операцию `create_user` - будет создан пользователь (выбрать доступ подключения к БД, созданной в п.2)

## Примеры подключения

### Подключение через HTTP-интерфейс

```bash
# Проверка доступности кластера
curl "http://<username>:<password>@<host>:8123/" -d "SELECT 1"

# Выполнение запроса
curl "http://<username>:<password>@<host>:8123/" -d "SHOW DATABASES"
```

## Простые кейсы
*Создать БД и обычной таблицы*
```clickhouse
CREATE TABLE database.table
(
id UInt64,
value String
)
ENGINE = MergeTree()
ORDER BY id;

INSERT INTO database.table SELECT number, toString(number) FROM numbers(10000000);

SELECT count() FROM database.table;
```
Базы и таблицы не реплицируются без специального ключа (`ON CLUSTER 'clickhousek8s'`)
В случае создания в стиле, описанным выше, необходимо будет выполнять действия на всех шардах/репликах


*Создание БД и шардированной таблицы*
```clickhouse
CREATE TABLE database.localUsers
(
id UInt64,
value String
)
ENGINE = MergeTree()
ORDER BY id;

CREATE TABLE database.shardedTable
AS localUsers
ENGINE = Distributed('clickhousek8s', 'database', 'localUsers', id);

INSERT INTO shardedTable SELECT number, toString(number) FROM numbers(10000000);

SELECT count() FROM shardedTable;
```
Важный момент - в данном примере таблицы придётся также выполнять на всех нодах ClickHouse

*Создание реплицируемой и шардированной таблицы*
```clickhouse
CREATE TABLE IF NOT EXISTS database.localUsers ON cluster 'clickhousek8s'
(
user_id UInt64,
name String,
email String
)
ENGINE = ReplicatedMergeTree(
'/clickhouse/tables/{shard}/localUsers',
'{replica}'
)
ORDER BY user_id;

CREATE TABLE IF NOT EXISTS database.users ON cluster 'clickhousek8s'
AS database.localUsers
ENGINE = Distributed('clickhousek8s', 'database', 'localUsers', rand());

INSERT INTO database.users VALUES (1, 'Alice', 'alice@example.com');
INSERT INTO database.users VALUES (2, 'Bob', 'bob@example.com');
INSERT INTO database.users VALUES (3, 'Charlie', 'charlie@example.com');
INSERT INTO database.users VALUES (4, 'David', 'david@example.com');
INSERT INTO database.users VALUES (5, 'Gosha', 'gosha@example.com');
INSERT INTO database.users VALUES (6, 'Eve', 'eve@example.com');
INSERT INTO database.users VALUES (7, 'Frank', 'frank@example.com');
INSERT INTO database.users VALUES (8, 'Grace', 'grace@example.com');
INSERT INTO database.users VALUES (9, 'Hannah', 'hannah@example.com');
INSERT INTO database.users VALUES (10, 'Ivan', 'ivan@example.com');

SELECT * FROM database.localUsers;
SELECT * FROM database.users;

SELECT COUNT(*) AS total_users FROM database.users;
SELECT COUNT(*) AS total_users_local FROM database.localUsers;
```","dtUpdated":"2026-01-30T11:43:54.356+0300","version":"0.0.4","sort":null,"dtCreated":"2025-11-13T13:14:48.087+0300","svcShort":"clickhouse","resourceRealmTypeId":3,"code":null,"orchestratorName":"ClickHouse","svcId":120,"svc":"ClickHouse","svcExtendedName":"ClickHouse clickhouse ","descr":"Управляемая база данных ClickHouse","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"# Инструкция по развертыванию Apache Kafka через платформу

---
## 1. Общая информация
AKHQ — это веб-интерфейс для работы с кластерами Apache Kafka.
Позволяет просматривать топики, consumer group'ы, сообщения, ACL, схему безопасности, состояние брокеров и метаданные.
Поддерживает работу с несколькими кластерами Kafka одновременно, включая внутренние и внешние (TLS) подключения.

## Доступные операции
- **create** — Создание ресурса AKHQ
- **suspend** — Остановка ресурса
- **resume** — Возобновление работы ресурса
- **modify** — Модификация настроек
- **delete** — Удаление ресурса

---
## 2. Параметры развертывания кластера
Ниже перечислены параметры, которые необходимо указать при создании ресурса Kafka:

* **Кластер Kafka к которому нужно настроить подключение**
Для использования AKHQ необходимо предварительно развернуть сервис Kafka. Пример: `kafka-external`.

* **Платформа для развертывания:**
Платформа для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.

* **Количество узлов в сети:**
Количество узлов для работы Akhq. Пример `2`

* **Квота (megabyte) памяти пода:**
Квота памяти пода в мегабайтах. Пример: `512`

* **Квота (millicore ) ядра пода:**
Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `500`

* **Имя домена:**
Dns Имя по которому будет происходить обращение к сервису. Указать необходимо уникальное имя до . ( то есть если необходимо получить dns ui) Пример: `kafka-external`

---
## 4. Выходные параметры
После успешного развертывания ресурса Kafka платформа возвращает ряд параметров.
Ключевым из них является:

**connectionUrl**
Это полное доменное имя (FQDN), по которому будет доступен интерфейс AKHQ. После развёртывания подождите несколько минут — UI станет доступен по HTTPS, как только все сервисы полностью запустятся.

**Учетные данные**
Здесь представлены поля для ввода логина и пароля, с помощью которых вы сможете авторизоваться в сервисе.

---
## 5. Дополнительная информация
Учётные записи, созданные для работы с AKHQ, предоставляют доступ только для просмотра данных. Для управления Kafka, пожалуйста, используйте возможности личного кабинета.
---","dtUpdated":"2026-01-30T11:45:52.760+0300","version":"0.0.1","sort":null,"dtCreated":"2025-10-22T15:24:29.300+0300","svcShort":"Akhq","resourceRealmTypeId":3,"code":null,"orchestratorName":"Akhq","svcId":119,"svc":"Akhq","svcExtendedName":"Akhq Akhq ","descr":"Web интерфейс Akhq для работы с Apache Kafka","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":false,"man":null,"dtUpdated":"2026-01-30T11:57:58.051+0300","version":"null","sort":null,"dtCreated":"2025-12-22T18:06:47.213+0300","svcShort":"nifi","resourceRealmTypeId":3,"code":null,"orchestratorName":"Nifi","svcId":117,"svc":"Nifi","svcExtendedName":"Nifi nifi ","descr":"ETL-система","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"# Инструкция по развертыванию Организация в Cloud Director через платформу

## 1. Общая информация

Сервис **Организация в Cloud Director** предназначен для управления изолированными организационными единицами (тенантами) внутри инфраструктуры Cloud Director. Он обеспечивает создание, модификацию и администрирование организаций, предоставление им облачных ресурсов, а также контроль уровня доступа. Сервис используется для организации рабочих окружений потребителей, управления жизненным циклом организаций и их сетевой инфраструктурой.

### Доступные операции

**create** — Создание новой организации с заданными характеристиками и типом доступа.
**delete** — Удаление организации после перехода в состояние suspend; приводит к удалению всех связанных сущностей.
**modify** — Изменение параметров внутри организации (на текущий момент поддерживается изменение ipSpaces).
**suspend** — Заморозка организации, ограничение возможности изменения и добавления сущностей.
**resume** — Разморозка организации, восстановление функций управления.

---

## 2. Параметры развертывания

Параметры входных данных операции **create**:

### Платформа для развертывания
Описание: платформа, на которой будет создана организация.
Пример значения: `ngcloud.ru`.

### Тип организации
Описание: тип создаваемой организации.
Варианты:
- `iaas` — организация с прямым доступом к облаку и авторизацией через Keycloak.
- `saas` — организация под управлением Nubes, без прямого доступа к облаку.

---

## 3. Рекомендованные характеристики

### Тестовое окружение
- Тип организации: `iaas` для обеспечения полного доступа к облачным ресурсам и самостоятельного управления.

### Промышленное окружение
- Тип организации: `saas` (упрощённая модель использования).

---

## 4. Выходные параметры

Услуга предоставляет следующие выходные параметры (формируются в процессе операций):

### Идентификатор организации
Уникальный идентификатор созданной организации. Используется для всех дальнейших API-операций.

### Статус организации
Отражает текущее состояние: active, suspended, modifying, deleting.

### Параметры сети
Выходные данные при наличии ipSpaces: список выделенных внешних IP, имя ip_space, количество IP.

---

## 5. Дополнительная информация

- Для конфигурации внешних IP внутри организации необходимо предварительно создать:
-- хотя бы один **Виртуальный датацентр (VDC)**;
-- хотя бы один **Сетевой шлюз периметра (Edge Gateway)**, привязанный к этой организации.
- Удаление организации возможно только через 14 дней после перевода в состояние suspend.
- Удаление организации приводит к удалению всех связанных сущностей: VDC, Edge Gateway, пулов IP, сетей, ВМок и иных объектов.
- Операция suspend не останавливает виртуальные машины, но блокирует любые изменения инфраструктуры внутри организации.
- Для iaas-организаций доступ осуществляется через Keycloak.

","dtUpdated":"2025-12-10T18:40:39.469+0300","version":"0.0.2","sort":null,"dtCreated":"2025-09-22T14:07:55.358+0300","svcShort":"kafka","resourceRealmTypeId":3,"code":null,"orchestratorName":"Kafka","svcId":116,"svc":"ApacheKafka","svcExtendedName":"ApacheKafka kafka ","descr":"Сервис создания кластера Apache Kafka","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"Mariadb кластер. Ресурсная платформа: k8s. Автоматизация: k8s operator.
Автоматическое резервное копирование, ручное восстановление.","dtUpdated":"2025-11-11T13:37:48.549+0300","version":"0.0.4","sort":null,"dtCreated":"2025-08-26T12:01:05.074+0300","svcShort":"mariadb","resourceRealmTypeId":3,"code":"paas.mysql.0","orchestratorName":"Mariadb","svcId":115,"svc":"Mariadb","svcExtendedName":"Mariadb mariadb ","descr":"Управляемая база данных MySQL","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":false,"man":"Комплексная услуга из ["gittea", "postgres"]","dtUpdated":"2025-08-28T12:12:50.814+0300","version":"master","sort":null,"dtCreated":"2025-06-30T12:16:12.397+0300","svcShort":"GiteaComplex","resourceRealmTypeId":3,"code":null,"orchestratorName":"GiteaComplex","svcId":114,"svc":"Комплексная услуга по созданию gitea","svcExtendedName":"Комплексная услуга по созданию gitea GiteaComplex ","descr":"Комплексная услуга из ["gittea", "postgres"]","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"# Создает окружение для ВМ.

## Создает сервисы:
**Организация**
**Виртуальный датацентр**
**Каталог**
**Сетевой шлюз периметра**

","dtUpdated":"2025-10-03T01:32:21.969+0300","version":"0.0.5","sort":null,"dtCreated":"2025-05-28T11:58:56.391+0300","svcShort":"vcComplex","resourceRealmTypeId":2,"code":null,"orchestratorName":"Complex","svcId":113,"svc":"Быстрый старт","svcExtendedName":"Быстрый старт vcComplex ","descr":"Создание готовой иерархии ресурсов","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":false,"man":null,"dtUpdated":"2026-01-30T13:19:30.993+0300","version":"0.0.7","sort":null,"dtCreated":"2025-03-10T17:47:48.965+0300","svcShort":"tenant","resourceRealmTypeId":6,"code":null,"orchestratorName":"Tenant","svcId":112,"svc":"Тенант в Grafana","svcExtendedName":"Тенант в Grafana tenant ","descr":"Организация доступов к мониторингу","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"Необходима DNS зона, в которой будет создана DNS запись.
Выберите
* Зону в которой будет создана запись
* Тип записи
* Имя записи
* Значение записи","dtUpdated":"2025-08-26T15:54:29.943+0300","version":"1.0.4","sort":null,"dtCreated":"2024-09-17T14:22:05.028+0300","svcShort":"dnsrecord","resourceRealmTypeId":4,"code":null,"orchestratorName":"Records","svcId":111,"svc":"DNS запись","svcExtendedName":"DNS запись dnsrecord ","descr":"DNS запись в созданной зоне","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"## ![image](https://img.icons8.com/?size=50&id=41400&format=png) Необходимо делегировать зону у регистратора на Авторитетные DNS (Сервера зон)

ns3.ngcloud.ru
``` bash
185.247.187.83
2a10:aa80:0:5::3
```

ns4.ngcloud.ru
``` bash
81.22.46.43
2a10:aa80:0:6::3
```","dtUpdated":"2025-08-26T15:33:39.433+0300","version":"1.0.3","sort":null,"dtCreated":"2024-09-16T18:52:52.357+0300","svcShort":"dnszone","resourceRealmTypeId":4,"code":null,"orchestratorName":"Zones","svcId":110,"svc":"DNS зона","svcExtendedName":"DNS зона dnszone ","descr":"Хостинг DNS зоны","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":false,"man":"Добавление и удаления пользователя для работы с Openwhisk","dtUpdated":"2025-04-21T09:24:43.629+0300","version":null,"sort":null,"dtCreated":"2024-09-12T13:43:55.166+0300","svcShort":"openwhisk","resourceRealmTypeId":5,"code":null,"orchestratorName":"OpenWhisk","svcId":100,"svc":"Serverless Openwhisk (openwhisk_tenant)","svcExtendedName":"Serverless Openwhisk (openwhisk_tenant) openwhisk ","descr":"Добавление и удаления пользователя (учетной записи, тенанта) для работы с Openwhisk","resourceRealmCnt":0,"synonyms":null},{"isProductionReady":true,"man":"Развертывает сервис контроля версий Gitea
Зависит от сервиса postgresql который должен быть развернут заранее.","dtUpdated":"2025-08-26T17:02:22.326+0300","version":"0.0.7","sort":null,"dtCreated":"2025-02-27T11:03:34.956+0300","svcShort":"gitea","resourceRealmTypeId":3,"code":null,"orchestratorName":"Gitea","svcId":99,"svc":"Gitea","svcExtendedName":"Gitea gitea ","descr":"Сервис контроля версий","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":null,"dtUpdated":"2025-08-26T17:02:46.347+0300","version":"0.0.8","sort":null,"dtCreated":"2025-02-25T11:39:20.377+0300","svcShort":"http","resourceRealmTypeId":3,"code":null,"orchestratorName":"SimpleHttpContainer","svcId":98,"svc":"Простой HTTP контейнер","svcExtendedName":"Простой HTTP контейнер http ","descr":null,"resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":null,"dtUpdated":"2025-08-08T11:45:56.962+0300","version":"0.0.1","sort":null,"dtCreated":"2025-02-05T14:31:17.734+0300","svcShort":"nodered","resourceRealmTypeId":3,"code":null,"orchestratorName":"NodeRed","svcId":97,"svc":"NodeRed","svcExtendedName":"NodeRed nodered ","descr":"Low-code платформа для IoT","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"Инструмент с графическим интерфейсом для управления базами данных PostgreSQL","dtUpdated":"2025-10-03T01:45:00.194+0300","version":"0.0.7","sort":null,"dtCreated":"2024-11-26T15:31:21.713+0300","svcShort":"pgadmin","resourceRealmTypeId":3,"code":null,"orchestratorName":"Pgadmin","svcId":96,"svc":"pgAdmin","svcExtendedName":"pgAdmin pgadmin ","descr":"Административный интерфейс для PostgreSQL","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"Развертывает контейнер в k8s кластере с node:16, который можно использовать для запуска своих приложений.
Приложение должно быть доступно по ссылки в git репозитории, которая является входным параметром.","dtUpdated":"2025-08-26T15:24:09.869+0300","version":"0.0.11","sort":null,"dtCreated":"2024-11-22T10:47:39.940+0300","svcShort":"nodejs","resourceRealmTypeId":3,"code":null,"orchestratorName":"Node","svcId":95,"svc":"NodeJS","svcExtendedName":"NodeJS nodejs ","descr":"Cервер приложений","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":null,"dtUpdated":"2025-08-26T15:23:32.093+0300","version":"0.0.15","sort":null,"dtCreated":"2024-10-02T17:33:55.713+0300","svcShort":"lucee","resourceRealmTypeId":3,"code":null,"orchestratorName":"Lucee","svcId":94,"svc":"Lucee","svcExtendedName":"Lucee lucee ","descr":"Cервер приложений","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"# Инструкция по развертыванию RabbitMQ через платформу

---
## 1. Общая информация
RabbitMQ — это брокер сообщений с открытым исходным кодом, который обеспечивает надёжную доставку сообщений между приложениями.
Позволяет надёжно передавать сообщения между сервисами и системами, интегрироваться с внешними решениями и использовать как внутренние, так и защищённые TLS-подключения. Развёртывание полностью автоматизировано платформой.

## Доступные операции
- **create** — Создание кластера
- **modify** — Изменение параметров кластера
- **delete** — Удаление кластера
- **suspend** — Остановка кластера
- **resume** — Запуск кластера


---
## 2. Параметры развертывания кластера
Ниже перечислены параметры, которые необходимо указать при создании ресурса RabbitMQ:

* **Платформа для развертывания:**
Платформа для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.

* **Количество узлов в сети:**
Количество реплик в кластере RabbitMQ. При значении больше 1 создаётся кластер с репликацией для обеспечения высокой доступности.
Пример: `1` (single node) или `3` (кластер с репликацией)

* **Квота (megabyte) памяти пода:**
Квота памяти пода в мегабайтах. Пример: `2048`

* **Квота (millicore) ядра пода:**
Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `1000`

* **Размер (gigabyte) диска для базы данных:**
Размер диска для хранения данных RabbitMQ в гигабайтах. Пример: `50`

* **Выделяет внешний IP для доступа к master:**
Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-узлу. При включении создаётся Service типа LoadBalancer и настраивается VIP на порту 5672.
Пример: `true` или `false`

* **Имя ipSpace для публикации внешнего IP master:**
Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`


---
## 3. Модификация кластера
Операция **modify** позволяет изменить параметры существующего кластера RabbitMQ.

**Изменяемые параметры:**
* **Квота (megabyte) памяти пода** — можно увеличить или уменьшить
* **Квота (millicore) ядра пода** — можно увеличить или уменьшить
* **Размер (gigabyte) диска для базы данных** — можно только увеличить (уменьшение не поддерживается)
* **Количество узлов в сети** — можно только увеличить (уменьшение не поддерживается)
* **Выделяет внешний IP для доступа к master** — можно включить или выключить
* **Имя ipSpace для публикации внешнего IP master** — можно изменить при включенном внешнем IP

**Ограничения:**
* Уменьшение размера диска не поддерживается
* Уменьшение количества реплик не поддерживается

---
## 4. Выходные параметры
После успешного развертывания ресурса RabbitMQ платформа возвращает ряд параметров в разделе "Поля состояния (сгенерированные значения)":

**clusterDomain**
Домен кластера Kubernetes, в котором развернут RabbitMQ.
Пример: `cluster.local`

**inernalConnect**
Внутренние эндпоинты для подключения к кластеру RabbitMQ из других сервисов, развернутых внутри той же сети.
Содержит:
* **master** — FQDN для подключения к кластеру. Пример: `rabbitmqk8s.{namespace}.svc.{clusterDomain}`

**externalConnect**
Внешние эндпоинты для подключения к кластеру RabbitMQ извне.
Содержит объекты с полями:
* **admin** — доступ к веб-интерфейсу управления:
* `fqdn` — полное доменное имя для веб-интерфейса. Пример: `admin.{namespace}.{domain}`
* `ip` — IP-адрес
* **master** — доступ к AMQP протоколу (если включен внешний IP):
* `fqdn` — полное доменное имя для AMQP. Пример: `write.{namespace}.{domain}`
* `ip` — IP-адрес

**monitoring**
Информация о дашбордах мониторинга:
* **allDashboards** — URL для доступа ко всем дашбордам Grafana

Для подключения используются следующие порты:

* **5672** — AMQP протокол (внутренний и внешний доступ, если включен внешний IP)
* **15672** — веб-интерфейс управления (доступен через Ingress по HTTPS)

**Учётные данные**
Данные для подключения к RabbitMQ доступны в разделе "Учётные данные":
* **adminUser** — имя пользователя администратора
* **adminPass** — пароль администратора


---
## 5. Примеры подключения через консоль (rabbitmqadmin)

### Работа с очередями через rabbitmqadmin

Для работы с RabbitMQ через консоль используется утилита `rabbitmqadmin`. Установите её или используйте образ с предустановленной утилитой.

Задайте переменные окружения с учётными данными:

```bash
export RABBITMQ_USERNAME=<adminUser>
export RABBITMQ_PASSWORD=<adminPass>
export RABBIT_HOST=<host>
```

Где:
* `<adminUser>` и `<adminPass>` — учётные данные из раздела "Учётные данные"
* `<host>` — адрес для подключения:
* Для внешнего подключения: `externalConnect.admin.fqdn` или `externalConnect.master.fqdn`

**Создание очереди:**

```bash
rabbitmqadmin \\
-H "$RABBIT_HOST" -P 15672 \\
-u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \\
declare queue name=healthcheck durable=false
```

**Листинг очередей:**

```bash
rabbitmqadmin \\
-H "$RABBIT_HOST" -P 15672 \\
-u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \\
list queues
```

**Отправка сообщения:**

```bash
rabbitmqadmin \\
-H "$RABBIT_HOST" -P 15672 \\
-u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \\
publish exchange=amq.default routing_key=healthcheck payload="ping-$(date +%s)"
```

**Чтение сообщения:**

```bash
rabbitmqadmin \\
-H "$RABBIT_HOST" -P 15672 \\
-u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \\
get queue=healthcheck ackmode=ack_requeue_false
```

---
## 6. Дополнительная информация
Для подключения к кластеру RabbitMQ используйте полученные эндпоинты из раздела "Поля состояния (сгенерированные значения)" и учётные данные из раздела "Учётные данные".

Веб-интерфейс управления доступен по адресу, указанному в параметре `externalConnect.admin.fqdn` через HTTPS.

Для внутреннего подключения используйте адрес из `inernalConnect.master` на порту 5672.

---","dtUpdated":"2025-12-23T17:55:10.562+0300","version":"1.0.0","sort":null,"dtCreated":"2024-09-06T18:34:29.581+0300","svcShort":"rabbitmq","resourceRealmTypeId":3,"code":null,"orchestratorName":"Rabbitmq","svcId":93,"svc":"RabbitMQ","svcExtendedName":"RabbitMQ rabbitmq ","descr":"Сервер очередей","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"# Инструкция по развертыванию MongoDB через платформу

## 1. Общая информация

MongoDB — документоориентированная распределённая база данных, обеспечивающая высокую доступность, горизонтальное масштабирование и гибкую модель хранения.

### Доступные операции с кластером

* **create** — создание базы
* **delete** — удаление базы данных
* **suspend** — остановка базы данных
* **resume** — запуск базы данных
* **modify** — изменение базы данных

### Доступные операции с пользователями

* **create_user** — создание пользователя
* **modify_user** — модификация пользователя
* **delete_user** — удаление пользователя

---

## 2. Параметры развертывания базы данных

Эти параметры необходимо указать при создании базы данных.

### Платформа для развертывания

Среда, в которой будет развернут кластер. Выбирается из предложенного списка.

### Количество узлов

Оптимально выбирать нечётное количество узлов в кластере MongoDB, так как это обеспечивает корректный процесс выбора ведущего узла и сохраняет работоспособность базы данных даже при отказе одной из нод.

### Квота памяти пода (MB)

Объём памяти для одного пода в мегабайтах.
Пример: `2048`

### Квота CPU пода (mCPU)

CPU-квота для пода в миликорах (1000 mCPU = 1 vCPU).
Пример: `1000`

### Размер диска для базы данных (GB)

Объём диска для хранения данных в гигабайтах.
Пример: `20`

### Выделение внешнего IP для доступа к master

Флаг, определяющий необходимость выделения внешнего IP.
Допустимые значения: `true` или `false`

### Имя ipSpace для публикации внешнего IP

Указывается только если включено выделение внешнего IP.
Пример: `internet-no-antiddos-v1`

---

## 3. Параметры модификации базы данных

Все параметры, которые вы указываете при модификации, являются необязательными — система автоматически подставит ранее сохранённые значения, и при необходимости вы можете изменить их на нужные.

### Количество узлов

Оптимально выбирать нечётное количество узлов в кластере MongoDB, так как это обеспечивает корректный процесс выбора ведущего узла и сохраняет работоспособность базы данных даже при отказе одной из нод.

### Квота памяти пода (MB)

Объём памяти для одного пода в мегабайтах.
Пример: `2048`

### Квота CPU пода (mCPU)

CPU-квота для пода в миликорах (1000 mCPU = 1 vCPU).
Пример: `1000`

### Размер диска для базы данных (GB)

Объём диска для хранения данных указывается в гигабайтах. Его можно увеличить при необходимости, однако уменьшить уже выделенный размер невозможно.
Пример: `20`

### Выделение внешнего IP для доступа к master

Флаг, определяющий необходимость выделения внешнего IP.
Допустимые значения: `true` или `false`

### Имя ipSpace для публикации внешнего IP

Указывается только если включено выделение внешнего IP.
Пример: `internet-no-antiddos-v1`

---

## 3. Параметры создания пользователя

### Имя пользователя

Указывается имя пользователя (любой регистр).
Пример: `readApp`

### Имя базы данных

Название базы, в которой будет создан пользователь.
Если база отсутствует, она будет создана автоматически.
Пример: `Apps_9392`

### Имя роли

* **read** — доступ только на чтение
* **readWrite** — чтение и изменение данных
* **dbOwner** — полный контроль над базой данных

---

## 4. Параметры модификации пользователя

### Имя пользователя

Необходимо выбрать существующего пользователя.
Если список пуст, требуется предварительно создать пользователя.

### Имя базы данных

База данных, к которой относится пользователь.
Если база отсутствует, она будет создана автоматически.
Пример: `Apps_9392`

### Имя роли

* **read**
* **readWrite**
* **dbOwner**

---

## 5. Параметры удаления пользователя

### Имя пользователя

Выберите пользователя из списка для удаления.

---

## 6. Выходные параметры

После успешного развертывания базы данных платформа возвращает ключевые параметры.

### internalConnect

Внутренний эндпоинт для подключения к кластеру из сервисов, работающих в той же сети.
Используется для внутренних интеграций и системных сервисов.

### externalConnect

Внешний FQDN для подключения к кластеру извне.
Порт подключения — **27017**.

---

## 7. Пример подключения

Перед подключением необходимо установить **mongosh**.

Команда подключения к базе данных:

```
mongosh "mongodb://<username>:<password>@<endpoint_db>:27017/<dbName>"
```

Где:

* `<username>` — имя пользователя
* `<password>` — пароль
* `<endpoint_db>` — internalConnect или externalConnect
* `<dbName>` — имя базы данных

## 8. Дополнительная информация

Сейчас соединение с базой работает без шифрования, и доступ к кластеру осуществляется только по логину и паролю.","dtUpdated":"2025-12-04T10:15:28.774+0300","version":"0.0.2","sort":null,"dtCreated":"2024-09-06T12:20:04.433+0300","svcShort":"mongodb","resourceRealmTypeId":3,"code":"paas.mngo.0","orchestratorName":"MongoDB","svcId":92,"svc":"MongoDB","svcExtendedName":"MongoDB mongodb ","descr":"Управляемая база данных MongoDB","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"Redis кластер. Под кеши.
Ресурсная платформа: k8s.
Автоматизация: k8s operator
port 6379","dtUpdated":"2025-08-26T15:40:53.298+0300","version":"0.0.10","sort":null,"dtCreated":"2024-07-09T18:41:46.951+0300","svcShort":"redis","resourceRealmTypeId":3,"code":null,"orchestratorName":"Redis","svcId":91,"svc":"Redis","svcExtendedName":"Redis redis ","descr":"Управляемая база данных Redis","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"# Инструкция по развертыванию PostgreSQL через платформу

---
## 1. Общая информация

PostgreSQL — это надёжная объектно-реляционная СУБД с открытым исходным кодом, поддерживающая расширенный набор функций, транзакции и хранение сложных типов данных. Развёртывание полностью автоматизировано платформой на базе Zalando Postgres Operator с использованием Kubernetes.

## Доступные операции

- **create** — Создание кластера
- **delete** — Удаление кластера
- **modify** — Модификация кластера
- **suspend** — Остановка кластера
- **resume** — Запуск кластера
- **restart** — Перезапуск кластера
- **recovery** — Восстановление из резервной копии

- **create_user** — Создание пользователя
- **delete_user** — Удаление пользователя

- **create_database** — Создание базы данных
- **delete_database** — Удаление базы данных


---
## 2. Параметры развертывания кластера

Ниже перечислены параметры, которые необходимо указать при создании ресурса PostgreSQL:

* **Платформа для развертывания:**
Платформа для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.

* **Количество узлов в сети:**
Количество инстансов (реплик) в кластере PostgreSQL. Пример: `2` (master + slave).

* **Квота (megabyte) памяти пода:**
Квота памяти пода в мегабайтах. Пример: `2048`

* **Квота (millicore) ядра пода:**
Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `1000`

* **Размер (gigabyte) диска для базы данных:**
Размер диска для хранения данных в гигабайтах. Пример: `20`

* **Выделяет внешний IP для доступа к master:**
Флаг, определяющий, нужно ли выделять внешний IP для доступа к master. Пример: `true` или `false`

* **Имя ipSpace для публикации внешнего IP master:**
Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`

* **Выделяет внешний IP для доступа к slave:**
Флаг для выделения внешнего IP для slave (реплики чтения). Работает, если slave присутствует в кластере.

* **Имя ipSpace для публикации внешнего IP slave:**
Если включен параметр для slave, то поле необходимо заполнить.

* **UUID экземпляра услуги S3:**
UUID экземпляра S3 для хранения резервных копий.

* **Версия PostgreSQL:**
Версия PostgreSQL для развертывания. Пример: `16`

* **Расписание бэкапов (ext_BACKUP_SCHEDULE):**
Необязательный. Cron-выражение для времени запуска бэкапов. По умолчанию: `0 0 * * *` (ежедневно в полночь).

* **Количество сохраняемых бэкапов (ext_BACKUP_NUM_TO_RETAIN):**
Необязательный. Количество сохраняемых бэкапов. По умолчанию: `7`

* **PgPooler (master / slave):**
Флаги включения PgBouncer для подключений на запись и чтение. При включении создаётся отдельный под.

* **Разрешить подключение без SSL (allowNoSSL):**
По умолчанию подключение с sslmode=require. При `true` разрешается подключение без SSL.

* **Автоскейлинг PV (autoScale):**
Включает автоскейлинг тома. Требует настройки autoScalePercentage, autoScaleTechWindow, autoScaleQuotaGb.

* **Дополнительные параметры PostgreSQL (jsonParameters):**
JSON с переменными конфигурации PostgreSQL. Документация: https://www.postgresql.org/docs/current/runtime-config.html

---
## 3. Выходные параметры

После успешного развертывания ресурса PostgreSQL платформа возвращает ряд параметров.

#### externalConnect

Внешние эндпоинты для подключения к кластеру:
- **master** — для операций записи (host: `write.${namespace}`, port: 5432)
- **slave** — для операций чтения (host: `read.${namespace}`, port: 5432)

Пример ответа платформы:

```json
{
"slave": {
"ip": "",
"fqdn": "",
"uuid": "",
"isExternal": false
},
"master": {
"ip": "<ip>",
"fqdn": "write.<namespace>.<cluster-domain>",
"uuid": "<uuid>",
"isExternal": false
}
}
```

Поля: `ip` — внешний IP; `fqdn` — полное имя хоста; `uuid` — идентификатор; `isExternal` — признак внешнего доступа.

#### internalConnect

Внутренние эндпоинты (FQDN) для подключения из других сервисов внутри той же сети Kubernetes.

Пример ответа платформы:

```json
{
"slave": "",
"master": {
"slave": "",
"master": {
"slave": "",
"master": "postgresqlk8s-master.<namespace>.svc.cluster.local"
}
}
}
```

Для подключения используйте значение `master.master.master` (host для записи) или соответствующее значение slave (host для чтения).

Для подключения используется порт **5432**.

---
## 4. Управление пользователями

### create_user — Создание пользователя

* **Имя пользователя (username):**
Имя создаваемого пользователя. Используется для подключения к базе и настройки прав.
Пример: `myapp_user`

* **Роль (role):**
Тип роли пользователя. Допустимые значения:
- `app_user` — базовые права для DML-операций (SELECT, INSERT, UPDATE, DELETE)
- `ddl_user` — расширенные права: createdb, createrole (управление базами и ролями)

Защищённые имена, которые нельзя использовать: `admin`, `postgres`, `standby`.

### delete_user — Удаление пользователя

* **Имя пользователя (username):**
Имя удаляемого пользователя. Пример: `myapp_user`

Пользователя нельзя удалить, если он является владельцем базы данных. Сначала удалите или передайте владение базами данных другому пользователю.

---
## 5. Управление базами данных

### create_database — Создание базы данных

* **Имя базы данных (dbName):**
Название создаваемой базы данных. Пример: `myapp_db`

* **Владелец базы данных (dbOwner):**
Имя пользователя-владельца базы. Должен существовать в кластере (создан через create_user). Пример: `myapp_user`

### delete_database — Удаление базы данных

* **Имя базы данных (dbName):**
Название удаляемой базы данных. Пример: `myapp_db`
","dtUpdated":"2026-02-13T13:36:07.464+0300","version":"1.0.0","sort":null,"dtCreated":"2024-07-08T11:22:38.929+0300","svcShort":"postgres","resourceRealmTypeId":3,"code":"paas.pg.0","orchestratorName":"Pgsql","svcId":90,"svc":"PostgreSQL","svcExtendedName":"PostgreSQL postgres ","descr":"Управляемая база данных PostgreSQL","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"# Инструкция по развертыванию Web-сервер с фреймворком Flask через платформу

## 1. Общая информация

Сервис **Web-сервер с фреймворком Flask** предназначен для развертывания веб-приложений на базе Flask.

### Доступные операции

create — включить сервис, развернуть веб-приложение с указанными параметрами.
delete — удалить сервис, только после suspend.
modify — изменить настройки сервиса и переразвернуть.
suspend — выключить веб-приложение, остановить обслуживание.
resume — включить веб-приложение после suspend.

---

## 2. Параметры развертывания

Параметры входных данных операции **create**:

### Имя домена
Описание: доменное имя для доступа к веб-приложению. Если указан FQDN, происходит проверка DNS на валидность А-записи. А-запись должна указывать на балансировщик ресурсной платформы. Если указано имя в рамках одного октета, оно будет добавлено в публичную DNS-зону.
Пример значения: строка, допустимые FQDN или имя в одном октете. Пример: example.com или myapp.

### Платформа для развертывания
Описание: кластер Kubernetes, в котором будет развернуто приложение.
Пример значения: идентификатор кластера Kubernetes.

### Квота ядра пода
Описание: количество CPU, выделяемое на под, в Milicores.
Пример значения: целое число, например 500 для 0.5 ядра.

### Квота памяти пода
Описание: количество памяти, выделяемое на под, в Megabytes.
Пример значения: целое число, например 512 для 512 MB.

### Кол-во реплик пода
Описание: количество инстансов пода для масштабирования.
Пример значения: целое число, шт, например 2.

### URL Проекта (gitpath)
Описание: полный HTTPS путь до проекта в Git-репозитории.
Пример значения: URL в формате https://github.com/myuser/myproject.git. Доступ к репозиторию должен быть публичным.

### URL HealthCheck
Описание: путь для проверки здоровья приложения внутри пода.
Пример значения: строка, путь, например /api/v1/health.

### Переменные окружения пода
Описание: структура данных, которая будет передана как переменные окружения в под.
Пример значения: ключ-значение, например {"ENV": "production"}.

---

## 3. Рекомендованные характеристики

### Тестовое окружение
- Квота ядра пода: 300m (0.3 ядра)
- Квота памяти пода: 256 MB
- Кол-во реплик пода: 1

### Промышленное окружение
- Квота ядра пода: от 1000m (1 ядро) в зависимости от нагрузки
- Квота памяти пода: от 1024 MB (1 GB) с учетом потребностей приложения
- Кол-во реплик пода: от 2 для обеспечения отказоустойчивости

---

## 4. Выходные параметры
Операция create не возвращает явных выходных параметров. Успешное выполнение операции приводит к развертыванию сервиса, доступного по указанному домену.

---

## 5. Дополнительная информация
- В корне проекта должен находиться файл requirements.txt со списком зависимостей Python.
- Исходный код веб-приложения должен располагаться в директории site.
- Запуск веб-сервера осуществляется командой python app.py.
- Используется версия Python: python:3.12-slim.
- Git-репозиторий должен быть публично доступен для платформы.
- Операция delete возможна только после suspend.
- Операция modify приводит к переразвертыванию с новыми параметрами.","dtUpdated":"2025-12-15T16:01:38.518+0300","version":"0.0.4","sort":null,"dtCreated":"2025-04-03T13:26:27.166+0300","svcShort":"flask","resourceRealmTypeId":3,"code":"paas.flsk.0","orchestratorName":"Flask","svcId":89,"svc":"Web-сервер с фреймворком Flask","svcExtendedName":"Web-сервер с фреймворком Flask flask flask,python,web","descr":null,"resourceRealmCnt":1,"synonyms":"flask,python,web"},{"isProductionReady":false,"man":null,"dtUpdated":"2025-07-08T17:38:52.475+0300","version":"0.0.1","sort":null,"dtCreated":"2025-05-14T16:06:14.130+0300","svcShort":"k8sZitiController","resourceRealmTypeId":3,"code":null,"orchestratorName":"ZitiController","svcId":88,"svc":"k8sZitiController","svcExtendedName":"k8sZitiController k8sZitiController ","descr":"Контроллер управления Client to service & service to service Zero trust network
","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"Расширенный реестр для управления Docker-образами с enterprise-функциями безопасности, репликации и контроля доступа.
Container Registry позволяет хранить, развертывать и управлять Docker-образами контейнеров в инфраструктуре NGcloud.
Сервис можно использовать в процессе разработки контейнеров. Например, вы можете настроить систему автоматизации на работу с реестром в Container Registry в рамках процесса непрерывной интеграции. Контейнеры идеально подходят для запуска небольших, независимых и легко изменяемых сервисов.
Чтобы начать работу, создайте реестр и загрузите в него Docker-образ
Авторизация: keycloak","dtUpdated":"2025-10-03T01:41:06.043+0300","version":"0.0.9","sort":null,"dtCreated":"2024-06-19T23:07:00.955+0300","svcShort":"harbor","resourceRealmTypeId":3,"code":null,"orchestratorName":"Registry","svcId":82,"svc":"Container Registry","svcExtendedName":"Container Registry harbor ","descr":"Реестр для хранения образов контейнеров","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"Apache Superset как сервис.
Ресурсная платформа: k8s.
Автоматизация: k8s operator.
Авторизация: 2FA keycloak (для доменного логина @mgmt.nubes.ru)","dtUpdated":"2025-08-26T15:01:07.187+0300","version":"0.0.8","sort":null,"dtCreated":"2024-06-11T11:05:39.952+0300","svcShort":"superset","resourceRealmTypeId":3,"code":null,"orchestratorName":"Superset","svcId":81,"svc":"Apache Superset","svcExtendedName":"Apache Superset superset ","descr":"Сервер отчетов","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"Ресурсная платформа: k8s. Автоматизация: helm chart","dtUpdated":"2025-08-26T15:02:57.739+0300","version":"0.0.9","sort":null,"dtCreated":"2024-07-04T22:23:46.807+0300","svcShort":"nextcloud","resourceRealmTypeId":3,"code":null,"orchestratorName":"Nextcloud","svcId":50,"svc":"Nextcloud","svcExtendedName":"Nextcloud nextcloud ","descr":"Платформа совместной работы","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":false,"man":"Сервис настройки PostgreSQL для виртуальной машины.
Требует наличия ВМ","dtUpdated":"2025-04-21T09:26:12.228+0300","version":null,"sort":null,"dtCreated":"2024-08-05T12:47:46.275+0300","svcShort":"vmpostgre","resourceRealmTypeId":2,"code":null,"orchestratorName":"VmPostgre","svcId":32,"svc":"vc_vm_postgresql_std","svcExtendedName":"vc_vm_postgresql_std vmpostgre ","descr":"Сервис настройки PostgreSQL для виртуальной машины.
Требует наличия ВМ","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"# Инструкция по развертыванию Группа виртуальных датацентров (groupvDC) через платформу

## 1. Общая информация

Сервис **Группа виртуальных датацентров (groupvDC)** предназначен для логического объединения нескольких виртуальных датацентров (vDC) в единую группу. Это позволяет растягивать SDN между разными vDC и централизованно управлять сетевой связностью. Управление инфраструктурой осуществляется через Cloud Director.
Сервис применяется в случаях, когда требуется обеспечить единое сетевое пространство для распределенных виртуальных датацентров.

### Доступные операции

**create** — Создание новой группы виртуальных датацентров.
**delete** — Удаление существующей группы vDC.
**add_vdc** — Добавление дополнительного виртуального датацентра в группу.
**remove_vdc** — Удаление ранее добавленного виртуального датацентра из группы.

---

## 2. Параметры развертывания

Параметры операции **create**:

### UUID VDC
Идентификатор виртуального датацентра, который будет являться первичным в группе.
Описание: требуется предварительно создать виртуальный датацентр с помощью услуги `Виртуальный датацентр (vDC)`.

---

## 3. Рекомендованные характеристики

### Тестовое окружение
- Для тестового окружения создавать группу VDC нет необходимости, так как это создаёт дополнительный слой абстракции в Cloud Director

### Промышленное окружение
- Для промышленного окружения, если в тенанте существуют разные VDC, создание groupvdc позволит снизить сетевые издержки (за счёт общей сети)

---

## 4. Выходные параметры

### Параметры groupvdc
Набор параметров, указанных пользователем при создании

---

## 5. Дополнительная информация
- Группа vDC используется для растягивания SDN между несколькими виртуальными датацентрами. Управление всеми сетевыми элементами внутри группы выполняется Cloud Director.
- Удалить первичный vDC (тот, что был указан при операции **create**) невозможно. Для его удаления необходимо удалить всю группу и создать новую.
- Перед добавлением любого vDC в группу он должен быть предварительно развернут через сервис `Виртуальный датацентр (vDC)`.
- Сети создаются не в этой услуге, а в услуге `Сетевой шлюз периметра (Edge)`. В ней необходимо будет выбрать тип `groupvdc`","dtUpdated":"2026-01-30T12:32:41.484+0300","version":"0.0.2","sort":null,"dtCreated":"2025-11-18T13:43:02.522+0300","svcShort":"vcVdcGroup","resourceRealmTypeId":2,"code":null,"orchestratorName":"VdcGroup","svcId":29,"svc":"Группа датацентров","svcExtendedName":"Группа датацентров vcVdcGroup ","descr":"Обеспечение сетевой доступности между датацентрами","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"# Документация по разворачиванию ВМ в Личном кабинете

Данный сервис позволяет разворачивать виртуальные машины (ВМ) непосредственно из Личного кабинета (ЛК).

## Доступные операции
- **create** — Создание виртуальной машины
- **delete** — Удаление виртуальной машины
- **resume** — Запуск виртуальной машины
- **suspend** — Остановка виртуальной машины

---

## Параметры для развёртывания ВМ

### Обязательные параметры:

**vappUid**
UUID vApp, в которой будет создаваться виртуальная машина.
*Пример: WZ00400*

**vmName**
Уникальное имя виртуальной машины.
*Пример: test-vm*

**vmCpu**
Количество ядер процессора. Должно быть больше 0.
*Пример: 1*

**vmRam**
Объем оперативной памяти в гигабайтах. Должно быть больше 0.
*Пример: 1*


**accessPortList**
Белый список портов для доступа к виртуальной машине извне в формате JSON.
*Пример: ["22","10050]*

**imageVm**
Образ операционной системы для развёртывания.
*Доступные значения: RockyLinux_9-16G-cloudinit, Ubuntu_22-20G, Debian_13-20G*

**userLogin**
Логин пользователя для SSH-доступа.
*По умолчанию: myuser*

**userPublicKey**
Публичный SSH-ключ пользователя в формате OpenSSH.
*Пример: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...*

**needAddZabbixTemplate**
Значение истина\\ложь, определяющее будет ли добавлен хост в zabbix.
*Пример: true*

### Опциональные параметры:

**accessIpList**
Белый список IP-адресов для доступа к виртуальной машине в формате JSON. Если оставить пустым, вм будет доступена со всех адресов.
*Пример: ["192.168.1.1", "10.0.0.5"]*

**vmDisk**
Размер дополнительного диска в гигабайтах. Должно быть больше 0.
*Пример: 50*

**ipSpaceName**
Внешний IP-адрес. Если не требуется — укажите значение "no-needed" (В нем не будет работать сбор метрик zabbix).

**cloudInit**
YAML-скрипт для кастомизации системы через cloud-init.

---

## Доступные образы операционных систем

### RockyLinux_9-16G-cloudinit
Базовый образ на основе Rocky Linux 9 (Rocky-9.6-x86_64-minimal) для серверных задач.
- Размер системного диска: 16 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

### Ubuntu_22-20G
Образ на основе Ubuntu Server 22.04 LTS для облачного окружения.
- Размер системного диска: 20 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

### Debian_13-20G
Образ на основе Debian 13 (Trixie) для стабильной серверной работы.
- Размер системного диска: 20 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

---

## Пример использования Cloud-init

```yaml
users:
- name: myuser
sudo: ALL=(ALL) NOPASSWD:ALL
groups: sudo
shell: /bin/bash
ssh-authorized-keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...

packages:
- nginx

runcmd:
- systemctl enable --now nginx
- systemctl restart nginx
```

---

## Результат выполнения

После успешного развёртывания в Личном кабинете появится новая виртуальная машина с заданными характеристиками. SSH-доступ осуществляется с использованием указанных логина и публичного ключа.

---

## Важные примечания

### Особенности работы:
- Для отключения внешнего IP укажите значение "no-needed" в параметре ipSpaceName
- Параметр cloudInit является опциональным

### Ограничения:
- Не рекомендуется использовать продолжительные инструкции в cloud-init (таймаут 5 минут)
- Не поддерживается запись файлов через cloud-init
- Не реализовано создание резервных копий ВМ

---

## Диагностика проблем с cloud-init

### Основной лог-файл:
```bash
/var/log/cloud-init.log
```

### Пакет не устанавливается:
- Проверьте доступность пакета в репозитории
- Убедитесь в правильности написания имени пакета
- Попробуйте установить вручную: `apt install <имя_пакета>` (Debian/Ubuntu) или `dnf install <имя_пакета>` (Rocky Linux)

### Команда не выполняется:
- Проверьте наличие требуемой утилиты в системе
- Убедитесь в правильности синтаксиса команды
- Попробуйте выполнить команду вручную для диагностики","dtUpdated":"2025-12-11T16:03:13.558+0300","version":"0.0.8","sort":260,"dtCreated":"2025-08-08T17:25:18.609+0300","svcShort":"vc_vm_v3","resourceRealmTypeId":2,"code":null,"orchestratorName":"VmV3","svcId":28,"svc":"Виртуальная машина","svcExtendedName":"Виртуальная машина vc_vm_v3 ","descr":"Создание виртуальной машины","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":false,"man":null,"dtUpdated":"2025-08-26T16:18:40.865+0300","version":"0.0.1","sort":240,"dtCreated":"2025-05-14T16:04:15.732+0300","svcShort":"vc_vm_v2","resourceRealmTypeId":2,"code":null,"orchestratorName":"VmV2","svcId":27,"svc":"VM в Cloud Director (vc_vmV2)","svcExtendedName":"VM в Cloud Director (vc_vmV2) vc_vm_v2 ","descr":"Виртуальная машина с возможностью настройки Cloud Init
Можно развернуть в услуге несколько ВМ
В зависимости от настроек можно выдавать на ВМ vip + dns","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"# Инструкция по развертыванию Виртуальный каталог ВМ (vApp) через платформу

## 1. Общая информация

**Виртуальный каталог ВМ (vApp)** — это логическая каталог, объединённая в единый управляемый объект. Сервис предназначен для совместного развертывания, управления жизненным циклом и сетевого взаимодействия набора связанных ВМ. Основные функции включают:
- централизованное управление включением, выключением и приостановкой группы ВМ;
- унифицированный сетевой доступ через привязанный Edge-шлюз;

### Доступные операции

**create** — Создание нового vApp с привязкой к заданным услугам VDC и Edge
**delete** — Удаление существующего vApp. Требуется предварительный перевод vApp в состояние *suspend*. Полное удаление возможно через 14 дней.
**suspend** — Остановка vApp (выключение всех ВМ внутри каталога)
**resume** — Запуск vApp (включение всех ВМ внутри каталога)

---

## 2. Параметры развертывания

Параметры берутся из операции **create**.

### UUID Услуги VDC
Уникальный идентификатор услуги «Виртуальный датацентр (vDC)».
Используется для определения вычислительной инфраструктуры, в которой будет развернут vApp.

### UUID Услуги Edge
Уникальный идентификатор услуги «Сетевой шлюз периметра (Edge)».
Обеспечивает маршрутизацию и сетевое подключение. Может быть привязан к группе VDC, поэтому выбирается отдельно.

### Имя vApp
Строгое имя, соответствующее маске формирования DNS-имени.
Используется как часть в DNS-имени при создании виртуальных машин.

---

## 3. Рекомендованные характеристики
Так как является промежуточным этапом для создания ВМ, все характеристики описываются в услуге `Виртуальная машина`

---

## 4. Выходные параметры

### Параметры vApp
Заданные при создании vApp

---

## 5. Дополнительная информация

- Привязка к VDC и Edge осуществляется раздельно, поскольку один Edge может обслуживать несколько VDC (через услугу `Группа виртуальных датацентров (groupvDC)`). Это гарантирует возможность развернуть ВМ в единой сети, но в разных виртуальных датацентрах.
- Перед удалением vApp необходимо вручную перевести его в состояние **suspend**. Удаление возможно только спустя 14 дней после этого шага.
- Операция delete удаляет весь vApp полностью, включая все виртуальные машины, связанные с ним.
- Рекомендуется заранее планировать сетевые связи и назначения DNS-имён для обеспечения корректной работы сервисов, развернутых внутри vApp.
- При проектировании инфраструктуры следует учитывать зависимости между Edge-шлюзом, VDC и размещаемыми ВМ, чтобы избежать ограничений при масштабировании и интеграции.","dtUpdated":"2025-12-11T15:37:54.155+0300","version":"0.0.8","sort":230,"dtCreated":"2024-12-18T13:41:42.516+0300","svcShort":"vapp","resourceRealmTypeId":2,"code":null,"orchestratorName":"Vapp","svcId":26,"svc":"Виртуальный каталог ВМ (vApp)","svcExtendedName":"Виртуальный каталог ВМ (vApp) vapp ","descr":"Группировка виртуальных машин","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"**Обычно эта услуга разворачивается автоматически при развёртывании более сложных услуг**
Вручную создавать можно, однако услуга требует много параметров, о которых можно просто не знать

Резервировать публичные IP адреса можно только после создания NGcloud Organization, NGcloud Виртуальный датацентр, NGcloud Каталог, Сетевой шлюз периметра.
Вы можете назначить IP адрес для существующего экземпляра сервиса.","dtUpdated":"2025-11-21T12:46:13.588+0300","version":"0.0.9","sort":270,"dtCreated":"2024-11-14T17:26:51.661+0300","svcShort":"vcexternalip","resourceRealmTypeId":2,"code":null,"orchestratorName":"Ip","svcId":25,"svc":"Публичные IP адреса","svcExtendedName":"Публичные IP адреса vcexternalip ","descr":"Резервирование IP адреса","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":false,"man":"Правила маршрутизации в Cloud Director. Требует наличие сетей, ВМ
DEPRECATED","dtUpdated":"2024-12-09T14:45:51.227+0300","version":null,"sort":null,"dtCreated":"2024-08-02T16:55:59.120+0300","svcShort":null,"resourceRealmTypeId":null,"code":null,"orchestratorName":null,"svcId":24,"svc":"DEPRECATED Правила маршрутизации для VM (vc_nat)","svcExtendedName":"DEPRECATED Правила маршрутизации для VM (vc_nat) ","descr":"Правила маршрутизации в Cloud Director. Требует наличие сетей, ВМ
DEPRECATED","resourceRealmCnt":0,"synonyms":null},{"isProductionReady":false,"man":"Виртуальная машина без каких-либо особенностей.
Данная услуга запускает vc_ip для выдачи белого адреса и подключения к ВМ","dtUpdated":"2025-08-26T16:15:24.964+0300","version":"0.0.3","sort":250,"dtCreated":"2024-08-02T12:53:13.869+0300","svcShort":"vc_vm","resourceRealmTypeId":2,"code":null,"orchestratorName":"Vm","svcId":23,"svc":"VM в Cloud Director (старый формат) (vc_vm)","svcExtendedName":"VM в Cloud Director (старый формат) (vc_vm) vc_vm ","descr":"Виртуальная машина без каких-либо особенностей.
Данная услуга запускает vc_ip для выдачи белого адреса и подключения к ВМ","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"# Инструкция по развертыванию Сетевой шлюз периметра (Edge) через платформу

## 1. Общая информация

Сервис **Сетевой шлюз периметра (Edge)** предназначен для создания периметрового сетевого шлюза в рамках одного виртуального датацентра (vDC) или группы виртуальных датацентров (groupvDC).
При создании автоматически разворачивается routed-сеть с адресным пространством `10.10.102.0/24`.
Сервис обеспечивает сетевую изоляцию, маршрутизацию, а также может включать функциональность балансировщика нагрузки AVI (ALB) для последующей интеграции, включая поддержку кластеров Штурвал.

### Доступные операции

**create** — Создание нового Edge с привязкой к vDC или groupvDC и развёртыванием routed-сети.
**delete** — Удаление ранее созданного Edge. Недоступно при наличии зависимых услуг (vApp, VM, Кластер Штурвал).
**modify** — Изменение параметров и сетевых настроек существующего Edge.

---

## 2. Параметры развертывания

Ниже приведены параметры операции **create**.

### Тип родительской услуги
Определяет контекст размещения Edge.
Допустимые значения: `vdc`, `groupvdc`.
Использование:
- При выборе `vdc` обязателен параметр **UUID VDC**.
- При выборе `groupvdc` обязателен параметр **UUID Группы VDC**.

### UUID VDC
Идентификатор виртуального датацентра.
Необходимо предварительно создать vDC через услугу «Виртуальный датацентр (vDC)».
Указывается только при выборе родительского типа `vdc`.

### UUID Группы VDC
Идентификатор группы виртуальных датацентров.
Создаётся через услугу «Группа виртуальных датацентров (groupvDC)».
Используется при выборе родительского типа `groupvdc`.

### Включить ALB
Флаг активации AVI Load Balancer в Cloud Director.
Пример значения: `true`/`false`.
Нужен для развёртывания кластера Штурвал и возможности создания Virtual Services.

### Наименование segroup
Имя сервиса групп (segroup) на уровне ресурсной платформы.
Обязательно при включённом ALB.
Определяет группу, в которой будут выделяться пулы AVI для Virtual Services.

### virtualServicesCount
Количество резервируемых виртуальных сервисов (Virtual Services) на AVI.
Типичное значение: 1–10 в зависимости от нагрузки.

---

## 3. Рекомендованные характеристики

### Тестовое окружение (Test)

- Тип родительской услуги: `vdc`
- virtualServicesCount: 1–2
- ALB: выключен по умолчанию (включать только при необходимости тестирования Штурвала)
- segroup: задаётся только при включённом ALB
- VDC гарантии CPU/RAM: минимальные (поскольку изменить их после создания нельзя)

### Промышленное окружение (Production)

- Тип родительской услуги: `groupvdc` при работе с распределёнными нагрузками или `vdc` для локализованных проектов
- virtualServicesCount: 3–10, исходя из предполагаемого количества публикаций
- ALB: включён, если требуется высокая доступность сервисов или используется кластер Штурвал
- segroup: рекомендуется использовать выделенную группу под проект
- VDC гарантии CPU/RAM: повышенные, с учётом того, что изменить их после создания невозможно без пересоздания vDC

---

## 4. Выходные параметры

### Имя Edge
Уникальное название созданного сетевого шлюза, используется для ссылок и дальнейших операций.

### Имя routed-сети
Автоматически созданная routed-сеть с подсетью `10.10.102.0/24`, используется для подключения ресурсов.

### Параметры Edge
Набор параметров, указанных пользователем при создании: тип услуги, ALB, segroup, virtualServicesCount и др.
Используются в операциях modify и для анализа состояния сервиса.

---

## 5. Дополнительная информация

- В рамках сервиса **один раз при создании задаётся гарантированная доля CPU/RAM vDC**. Изменить её невозможно — требуется пересоздание vDC.
- Удаление Edge недоступно при наличии зависимых ресурсов (vApp, VM, кластер Штурвал).
- При использовании ALB необходимо корректно указывать segroup, чтобы обеспечить корректное выделение пулов AVI.
- При выборе режима `groupvdc` следует учитывать распределение нагрузки между несколькими vDC.
- SNAT для всех ресурсов внутри Edge можно активировать через операцию modify (параметры выделения VIP и ipSpace).

","dtUpdated":"2025-12-11T12:43:51.799+0300","version":"0.0.9","sort":220,"dtCreated":"2024-05-23T09:31:52.029+0300","svcShort":"vc_nsxt","resourceRealmTypeId":2,"code":null,"orchestratorName":"Nsxt","svcId":22,"svc":"Сетевой шлюз периметра (Edge)","svcExtendedName":"Сетевой шлюз периметра (Edge) vc_nsxt ","descr":"Обеспечение сетевой доступности в тенанте","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"# Инструкция по развертыванию Виртуальный датацентр (vDC) через платформу

## 1. Общая информация

**Виртуальный датацентр (vDC)** — это логическая изолированная среда в VMware Cloud Director, предназначенная для размещения и управления виртуальными машинами, сетевой инфраструктурой и ресурсами хранения. Сервис обеспечивает выделение вычислительных ресурсов под конкретную организацию и предоставляет гибкие параметры масштабирования, контроля потребления и разделения ресурсов.

### Доступные операции

**create** — Создание виртуального датацентра (vDC) с заданными параметрами CPU, RAM, Storage и сетевой конфигурацией.
**delete** — Удаление vDC. Требуется предварительный перевод vDC в состояние *suspend*. Полное удаление возможно через 14 дней.
**modify** — Внесение изменений в параметры ресурсов (CPU/RAM/Storage), выделенных для vDC.
**suspend** — Заморозка vDC. Новые ресурсы или изменения внутри vDC становятся невозможными, работа ВМ не останавливается.
**resume** — Разморозка vDC. Восстановление возможности управления сущностями внутри vDC.

---

## 2. Параметры развертывания

Ниже перечислены входные параметры операции **create**.

### UUID Организации
Уникальный идентификатор организации в Cloud Director. Перед созданием vDC требуется предварительное создание услугу `Организация в Cloud Director`.

### Provider VDC в Cloud Director
Свойство ресурсной платформы, определяющее, какой пул физических ресурсов будет использоваться.

### Network Pool в Cloud Director
Определяет возможности сетевой конфигурации, включая создание Edge Gateway и выход во внешние сети.

### Гарантированная доля ЯДЕР
Гарантированный процент вычислительных ресурсов (CPU), закрепленный за vDC. Значение устанавливается разово при создании.

### Гарантированная доля ОЗУ
Гарантированный процент оперативной памяти, закрепленный за vDC. Также задаётся один раз при создании.

### Сколько аллоцировать на VDC ЯДЕР
Количество виртуальных ядер, выделяемых в рамках vDC.

### Сколько аллоцировать на VDC ОЗУ
Количество оперативной памяти в GB, выделяемой для vDC.

### Конфигурация Storage
Набор дисковых политик и их объёмов, выделяемых для vDC. Указывается имя политики и требуемый размер (GB).

---

## 3. Рекомендованные характеристики

### Тестовое окружение

- Количество ядер CPU: 10–20
- Аллоцируемая RAM: 16–64 GB
- Гарантированная доля CPU: 20%
- Гарантированная доля RAM: 20%
- Storage:
- Политика `SATA`
- Объём: 100–300 GB

### Промышленное окружение

- Количество ядер CPU: 16–128
- Аллоцируемая RAM: 64–512 GB
- Гарантированная доля CPU: 50%
- Гарантированная доля RAM: 50%
- Storage:
- Политики уровня `SSD`
- Объём: 1–10 TB, выбор несколько политик под разные нагрузки

---

## 4. Выходные параметры

Выходные параметры формируются операцией **create** (и используются другими операциями):

### Имя vDC
Уникальный идентификатор созданного виртуального датацентра. Используется в дальнейших операциях (modify, suspend, delete).

### Параметры выделенных ресурсов
Подтверждение итогового объёма CPU/RAM/Storage, выделенных vDC. Используются для учёта и контроля потребления.

---

## 5. Дополнительная информация

- Перед созданием vDC необходимо обеспечить наличие корректно созданной организации и доступных пула ресурсов ресурсной платформы.
- Гарантированная доля CPU и RAM задаётся **однократно при создании vDC**. После развертывания изменить эти значения невозможно; для изменения необходимо пересоздать vDC.
- Удаление vDC возможно только через **14 дней после перевода в состояние *suspend***. Удаление очищает все связанные сущности (ВМ, сети, каталоги), поэтому необходимо убедиться, что данные перенесены.
- Платформа Cloud Director использует концепцию изолированных организационных ресурсов, поэтому корректная настройка Provider VDC и Network Pool является обязательной при создании vDC.
- При изменении параметров (modify) изменяются только показатели CPU, RAM и Storage. Сетевые параметры и гарантированные доли остаются неизменными.
","dtUpdated":"2025-12-11T12:33:52.619+0300","version":"1.0.5","sort":210,"dtCreated":"2024-05-23T09:31:52.029+0300","svcShort":"vc_vdc","resourceRealmTypeId":2,"code":null,"orchestratorName":"Vdc","svcId":21,"svc":"Виртуальный датацентр (vDC)","svcExtendedName":"Виртуальный датацентр (vDC) vc_vdc ","descr":"Выделение вычислительных ресурсов","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":false,"man":"Верхнеуровневая сущность создаваемая для Заказчика.
Внутри Организация вы можете создать: Виртуальные датацентры, Каталоги.","dtUpdated":"2025-10-29T22:52:10.890+0300","version":"1.0.0","sort":200,"dtCreated":"2024-05-23T09:31:52.029+0300","svcShort":"vcOrgSaas","resourceRealmTypeId":2,"code":null,"orchestratorName":"OrgSaas","svcId":20,"svc":"Организация [DEPRECATED]","svcExtendedName":"Организация [DEPRECATED] vcOrgSaas ","descr":"Без интеграции Keycloak","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"# Инструкция по развертыванию Организация в Cloud Director через платформу

## 1. Общая информация

Сервис **Организация в Cloud Director** предназначен для управления изолированными организационными единицами (тенантами) внутри инфраструктуры Cloud Director. Он обеспечивает создание, модификацию и администрирование организаций, предоставление им облачных ресурсов, а также контроль уровня доступа. Сервис используется для организации рабочих окружений потребителей, управления жизненным циклом организаций и их сетевой инфраструктурой.

### Доступные операции

**create** — Создание новой организации с заданными характеристиками и типом доступа.
**delete** — Удаление организации после перехода в состояние suspend; приводит к удалению всех связанных сущностей.
**modify** — Изменение параметров внутри организации (на текущий момент поддерживается изменение ipSpaces).
**suspend** — Заморозка организации, ограничение возможности изменения и добавления сущностей.
**resume** — Разморозка организации, восстановление функций управления.

---

## 2. Параметры развертывания

Параметры входных данных операции **create**:

### Платформа для развертывания
Описание: платформа, на которой будет создана организация.
Пример значения: `ngcloud.ru`.

### Тип организации
Описание: тип создаваемой организации.
Варианты:
- `iaas` — организация с прямым доступом к облаку и авторизацией через Keycloak.
- `saas` — организация под управлением Nubes, без прямого доступа к облаку.

---

## 3. Рекомендованные характеристики

### Тестовое окружение
- Тип организации: `iaas` для обеспечения полного доступа к облачным ресурсам и самостоятельного управления.

### Промышленное окружение
- Тип организации: `saas` (упрощённая модель использования).

---

## 4. Выходные параметры

Услуга предоставляет следующие выходные параметры (формируются в процессе операций):

### Url организации
Для быстрого доступа в тенант

### Статус организации
Отражает текущее состояние и параметры.

---

## 5. Дополнительная информация

- Для конфигурации внешних IP внутри организации необходимо предварительно создать:
-- хотя бы один **Виртуальный датацентр (VDC)** привязанный к этой организации;
-- хотя бы один **Сетевой шлюз периметра (Edge Gateway)**, привязанный к vdc выше.
- Удаление организации возможно только через 14 дней после перевода в состояние suspend.
- Удаление организации приводит к удалению всех связанных сущностей: VDC, Edge Gateway, пулов IP, сетей, ВМок и иных объектов.
- Операция suspend не останавливает виртуальные машины, но блокирует любые изменения инфраструктуры внутри организации.
- Для iaas-организаций доступ осуществляется через Keycloak.","dtUpdated":"2025-12-11T12:31:16.343+0300","version":"1.0.2","sort":201,"dtCreated":"2025-08-18T16:45:06.350+0300","svcShort":"vcOrg","resourceRealmTypeId":2,"code":null,"orchestratorName":"Org","svcId":19,"svc":"Организация в Cloud Director","svcExtendedName":"Организация в Cloud Director vcOrg ","descr":null,"resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":null,"dtUpdated":"2025-08-26T17:48:40.297+0300","version":"1.0.3","sort":110,"dtCreated":"2024-10-17T16:37:15.020+0300","svcShort":"s3bucket","resourceRealmTypeId":1,"code":null,"orchestratorName":"Bucket","svcId":13,"svc":"S3 бакет","svcExtendedName":"S3 бакет s3bucket ","descr":"Бакет в сервисе S3","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"Руководство доступно по ссылке:
https://docs.s3.msk-1.ngcloud.ru/s3/s3.description.html","dtUpdated":"2025-08-26T14:48:30.886+0300","version":"1.0.5","sort":100,"dtCreated":"2024-05-23T09:31:52.029+0300","svcShort":"s3","resourceRealmTypeId":1,"code":"paas.s3.ceph","orchestratorName":"Ceph","svcId":12,"svc":"S3 Object Storage","svcExtendedName":"S3 Object Storage s3 ","descr":"Масштабируемое хранилище данных","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":null,"dtUpdated":"2025-08-26T15:18:55.340+0300","version":"0.0.7","sort":1010,"dtCreated":"2025-02-12T18:35:47.513+0300","svcShort":"template","resourceRealmTypeId":3,"code":null,"orchestratorName":"Template","svcId":2,"svc":"Темплейт k8s","svcExtendedName":"Темплейт k8s template ","descr":"Болванка для тестирования","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"## Болванка для тестов.

А это просто много букв, чтобы посмотреть, как ведет себя текст при переполнении контейнера.


``` json
{
"iamServiceUrl": "https://auth-api-test.ngcloud.ru/api/v1/user",
"idpResponse": {
"prefix": {
"charset": "",
"status_text": "Request Time-out",
"text": true,
"errordetail": "",
"filecontent": "Connection Timeout",
"responseheader": {},
"header": "",
"statuscode": "408 Request Time-out",
"status_code": 408,
"mimetype": "Unable to determine MIME type of file."
}
}
}
```","dtUpdated":"2025-07-09T14:07:44.022+0300","version":"1.0.2","sort":1000,"dtCreated":"2024-05-23T09:31:52.029+0300","svcShort":"dummy","resourceRealmTypeId":7,"code":null,"orchestratorName":"Service","svcId":1,"svc":"Болванка","svcExtendedName":"Болванка dummy ","descr":"Болванка для тестов","resourceRealmCnt":1,"synonyms":null}],"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/1.json b/artifacts/api-meta/test/services/1.json new file mode 100644 index 0000000..fe6fbbc --- /dev/null +++ b/artifacts/api-meta/test/services/1.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svc":{"svcId":1,"svc":"Болванка","svcShort":"dummy","code":null,"version":"1.0.2","orchestratorName":"Service","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/dummy/job/Service/job/create/view/tags/job/1.0.2/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":7,"iconSrc":null,"descr":"Болванка для тестов","man":"## Болванка для тестов.

А это просто много букв, чтобы посмотреть, как ведет себя текст при переполнении контейнера.


``` json
{
"iamServiceUrl": "https://auth-api-test.ngcloud.ru/api/v1/user",
"idpResponse": {
"prefix": {
"charset": "",
"status_text": "Request Time-out",
"text": true,
"errordetail": "",
"filecontent": "Connection Timeout",
"responseheader": {},
"header": "",
"statuscode": "408 Request Time-out",
"status_code": 408,
"mimetype": "Unable to determine MIME type of file."
}
}
}
```","operations":[{"svcOperationId":71,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/dummy/job/Service/job/delete/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":92,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/dummy/job/Service/job/modify/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":93,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/dummy/job/Service/job/suspend/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":94,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/dummy/job/Service/job/resume/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":18,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/dummy/job/Service/job/create/view/tags/job/1.0.2/buildWithParameters","descr":"Это описание операции CREATE сервиса Болванка","man":"Это мануал к операции CREATE сервиса Болванка"},{"svcOperationId":240,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/dummy/job/Service/job/redeploy/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/100.json b/artifacts/api-meta/test/services/100.json new file mode 100644 index 0000000..f21322c --- /dev/null +++ b/artifacts/api-meta/test/services/100.json @@ -0,0 +1 @@ +{"queryDurationMs":45,"svc":{"svcId":100,"svc":"Serverless Openwhisk (openwhisk_tenant)","svcShort":"openwhisk","code":null,"version":null,"orchestratorName":"OpenWhisk","createUrl":null,"isProductionReady":false,"resourceRealmTypeId":5,"iconSrc":null,"descr":"Добавление и удаления пользователя (учетной записи, тенанта) для работы с Openwhisk","man":"Добавление и удаления пользователя для работы с Openwhisk","operations":[]},"runDurationMs":45} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/110.json b/artifacts/api-meta/test/services/110.json new file mode 100644 index 0000000..8ef900d --- /dev/null +++ b/artifacts/api-meta/test/services/110.json @@ -0,0 +1 @@ +{"queryDurationMs":47,"svc":{"svcId":110,"svc":"DNS зона","svcShort":"dnszone","code":null,"version":"1.0.3","orchestratorName":"Zones","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/powerdns/job/Zones/job/create/view/tags/job/1.0.3/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":4,"iconSrc":"https://www.svgrepo.com/download/530451/dns.svg","descr":"Хостинг DNS зоны","man":"## ![image](https://img.icons8.com/?size=50&id=41400&format=png) Необходимо делегировать зону у регистратора на Авторитетные DNS (Сервера зон)

ns3.ngcloud.ru
``` bash
185.247.187.83
2a10:aa80:0:5::3
```

ns4.ngcloud.ru
``` bash
81.22.46.43
2a10:aa80:0:6::3
```","operations":[{"svcOperationId":44,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/powerdns/job/Zones/job/delete/view/tags/job/1.0.3/buildWithParameters","descr":null,"man":null},{"svcOperationId":43,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/powerdns/job/Zones/job/create/view/tags/job/1.0.3/buildWithParameters","descr":null,"man":null}]},"runDurationMs":47} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/111.json b/artifacts/api-meta/test/services/111.json new file mode 100644 index 0000000..89fc5c9 --- /dev/null +++ b/artifacts/api-meta/test/services/111.json @@ -0,0 +1 @@ +{"queryDurationMs":45,"svc":{"svcId":111,"svc":"DNS запись","svcShort":"dnsrecord","code":null,"version":"1.0.4","orchestratorName":"Records","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/powerdns/job/Records/job/create/view/tags/job/1.0.4/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":4,"iconSrc":"https://www.svgrepo.com/download/530451/dns.svg","descr":"DNS запись в созданной зоне","man":"Необходима DNS зона, в которой будет создана DNS запись.
Выберите
* Зону в которой будет создана запись
* Тип записи
* Имя записи
* Значение записи","operations":[{"svcOperationId":45,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/powerdns/job/Records/job/create/view/tags/job/1.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":90,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/powerdns/job/Records/job/modify/view/tags/job/1.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":46,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/powerdns/job/Records/job/delete/view/tags/job/1.0.4/buildWithParameters","descr":null,"man":null}]},"runDurationMs":45} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/112.json b/artifacts/api-meta/test/services/112.json new file mode 100644 index 0000000..7b06aab --- /dev/null +++ b/artifacts/api-meta/test/services/112.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svc":{"svcId":112,"svc":"Тенант в Grafana","svcShort":"tenant","code":null,"version":"0.0.7","orchestratorName":"Tenant","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/grafana/job/Tenant/job/create/view/tags/job/0.0.7/buildWithParameters","isProductionReady":false,"resourceRealmTypeId":6,"iconSrc":null,"descr":"Организация доступов к мониторингу","man":null,"operations":[{"svcOperationId":87,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/grafana/job/Tenant/job/modify/view/tags/job/0.0.7/buildWithParameters","descr":"Просто удаляет все текущие датасоурсы и ставит их заново
Полезно, когда нужно "ресетнуть" / "добавить"","man":"Просто удаляет все текущие датасоурсы и ставит их заново
Полезно, когда нужно "ресетнуть" / "добавить""},{"svcOperationId":84,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/grafana/job/Tenant/job/create/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":86,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/grafana/job/Tenant/job/delete/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/113.json b/artifacts/api-meta/test/services/113.json new file mode 100644 index 0000000..6ffd053 --- /dev/null +++ b/artifacts/api-meta/test/services/113.json @@ -0,0 +1 @@ +{"queryDurationMs":61,"svc":{"svcId":113,"svc":"Быстрый старт","svcShort":"vcComplex","code":null,"version":"0.0.5","orchestratorName":"Complex","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Complex/job/create/view/tags/job/0.0.5/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Создание готовой иерархии ресурсов","man":"# Создает окружение для ВМ.

## Создает сервисы:
**Организация**
**Виртуальный датацентр**
**Каталог**
**Сетевой шлюз периметра**

","operations":[{"svcOperationId":107,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Complex/job/create/view/tags/job/0.0.5/buildWithParameters","descr":null,"man":null}]},"runDurationMs":61} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/114.json b/artifacts/api-meta/test/services/114.json new file mode 100644 index 0000000..924e773 --- /dev/null +++ b/artifacts/api-meta/test/services/114.json @@ -0,0 +1 @@ +{"queryDurationMs":40,"svc":{"svcId":114,"svc":"Комплексная услуга по созданию gitea","svcShort":"GiteaComplex","code":null,"version":"master","orchestratorName":"GiteaComplex","createUrl":null,"isProductionReady":false,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Комплексная услуга из ["gittea", "postgres"]","man":"Комплексная услуга из ["gittea", "postgres"]","operations":[]},"runDurationMs":41} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/115.json b/artifacts/api-meta/test/services/115.json new file mode 100644 index 0000000..07a6475 --- /dev/null +++ b/artifacts/api-meta/test/services/115.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svc":{"svcId":115,"svc":"Mariadb","svcShort":"mariadb","code":"paas.mysql.0","version":"0.0.4","orchestratorName":"Mariadb","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Mariadb/job/create/view/tags/job/0.0.4/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Управляемая база данных MySQL","man":"Mariadb кластер. Ресурсная платформа: k8s. Автоматизация: k8s operator.
Автоматическое резервное копирование, ручное восстановление.","operations":[{"svcOperationId":142,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Mariadb/job/modify/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":140,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Mariadb/job/suspend/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":141,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Mariadb/job/resume/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":139,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Mariadb/job/delete/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":138,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Mariadb/job/create/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null}]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/116.json b/artifacts/api-meta/test/services/116.json new file mode 100644 index 0000000..9f33b24 --- /dev/null +++ b/artifacts/api-meta/test/services/116.json @@ -0,0 +1 @@ +{"queryDurationMs":46,"svc":{"svcId":116,"svc":"ApacheKafka","svcShort":"kafka","code":null,"version":"0.0.2","orchestratorName":"Kafka","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Kafka/job/create/view/tags/job/0.0.2/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Сервис создания кластера Apache Kafka","man":"# Инструкция по развертыванию Организация в Cloud Director через платформу

## 1. Общая информация

Сервис **Организация в Cloud Director** предназначен для управления изолированными организационными единицами (тенантами) внутри инфраструктуры Cloud Director. Он обеспечивает создание, модификацию и администрирование организаций, предоставление им облачных ресурсов, а также контроль уровня доступа. Сервис используется для организации рабочих окружений потребителей, управления жизненным циклом организаций и их сетевой инфраструктурой.

### Доступные операции

**create** — Создание новой организации с заданными характеристиками и типом доступа.
**delete** — Удаление организации после перехода в состояние suspend; приводит к удалению всех связанных сущностей.
**modify** — Изменение параметров внутри организации (на текущий момент поддерживается изменение ipSpaces).
**suspend** — Заморозка организации, ограничение возможности изменения и добавления сущностей.
**resume** — Разморозка организации, восстановление функций управления.

---

## 2. Параметры развертывания

Параметры входных данных операции **create**:

### Платформа для развертывания
Описание: платформа, на которой будет создана организация.
Пример значения: `ngcloud.ru`.

### Тип организации
Описание: тип создаваемой организации.
Варианты:
- `iaas` — организация с прямым доступом к облаку и авторизацией через Keycloak.
- `saas` — организация под управлением Nubes, без прямого доступа к облаку.

---

## 3. Рекомендованные характеристики

### Тестовое окружение
- Тип организации: `iaas` для обеспечения полного доступа к облачным ресурсам и самостоятельного управления.

### Промышленное окружение
- Тип организации: `saas` (упрощённая модель использования).

---

## 4. Выходные параметры

Услуга предоставляет следующие выходные параметры (формируются в процессе операций):

### Идентификатор организации
Уникальный идентификатор созданной организации. Используется для всех дальнейших API-операций.

### Статус организации
Отражает текущее состояние: active, suspended, modifying, deleting.

### Параметры сети
Выходные данные при наличии ipSpaces: список выделенных внешних IP, имя ip_space, количество IP.

---

## 5. Дополнительная информация

- Для конфигурации внешних IP внутри организации необходимо предварительно создать:
-- хотя бы один **Виртуальный датацентр (VDC)**;
-- хотя бы один **Сетевой шлюз периметра (Edge Gateway)**, привязанный к этой организации.
- Удаление организации возможно только через 14 дней после перевода в состояние suspend.
- Удаление организации приводит к удалению всех связанных сущностей: VDC, Edge Gateway, пулов IP, сетей, ВМок и иных объектов.
- Операция suspend не останавливает виртуальные машины, но блокирует любые изменения инфраструктуры внутри организации.
- Для iaas-организаций доступ осуществляется через Keycloak.

","operations":[{"svcOperationId":149,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Kafka/job/delete/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":167,"operation":"delete_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Kafka/job/delete_topic/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":161,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Kafka/job/resume/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":168,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Kafka/job/create_user/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.

---

## 1. Общая информация

Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.
Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.
Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.

---

## Доступные операции

- **create_user** — Создание пользователя
- **modify_user** — Модификация пользователя
- **delete_user** — Удаление пользователя

---

## 2. Параметры создания пользователя

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

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 3. Параметры модификации пользователя

Ниже перечислены параметры, которые необходимо указать при модификации пользователя:

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 4. Параметры удалении пользователя

Ниже перечислены параметры, которые необходимо указать при удалении пользователя:

* **Имя пользователя**
Имя удаляемого пользователя.
Пример: `username-admin`

## 5. Выходные параметры

После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:

* **ca.crt**
Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.
Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **ca.p12**
PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.p12
```

* **ca.password**
Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

* **user.crt**
Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.
Используется совместно с приватным ключом `user.key` для аутентификации.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **user.key**
Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.key
```

* **user.p12**
PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo "<содержание поля>" | base64 -d > <название>.p12
```

* **user.password**
Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

Эти параметры используются для настройки TLS-подключения.

---

## 6. Пример конфигурации клиента внутри кластера

Пример пода:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: kafka-4
spec:
volumes:
- name: work
emptyDir: {}
containers:
- name: kcat
image: quay.io/strimzi/kafka:latest-kafka-4.0.0
command: ["sleep", "5600"]
volumeMounts:
- name: work
mountPath: /work
restartPolicy: Never
```

Создаём под и сохраняем сертификаты:

```bash
kubectl cp user.p12 kafka-4:/work/
kubectl cp ca.p12 kafka-4:/work/
```

Создаём файлы конфигурации:

```bash
cat > /work/user-read.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

```bash
cat > /work/user-write.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user-write.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

Листинг доступных топиков:

```bash
/opt/kafka/bin/kafka-topics.sh \\
--bootstrap-server kafkak8s-bootstrap-external:9093 \\
--command-config /work/user-read.properties \\
--list
```

Запись сообщений:

```bash
/opt/kafka/bin/kafka-console-producer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--producer.config /work/user-write.properties
```

Чтение сообщений:

```bash
/opt/kafka/bin/kafka-console-consumer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--from-beginning \\
--group <group> \\
--consumer.config /work/user-read.properties \\
--max-messages 50
```

---

## 7. Пример внешнего подключения с использованием **kcat**

**Листинг топиков**

```bash
kcat -b <externalConnect.bootstrap.fqdn>:9093 \\
-L \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Запись сообщения**

```bash
echo "hello from kcat" | kcat -P \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-write.crt \\
-X ssl.key.location=./user-write.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Чтение сообщений**

```bash
kcat -C \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-o beginning \\
-q \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

---


## 9. Рекомендации

* Минимизируйте набор разрешённых операций для повышения безопасности.
* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.
* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.
* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.

---"},{"svcOperationId":170,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Kafka/job/delete_user/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.

---

## 1. Общая информация

Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.
Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.
Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.

---

## Доступные операции

- **create_user** — Создание пользователя
- **modify_user** — Модификация пользователя
- **delete_user** — Удаление пользователя

---

## 2. Параметры создания пользователя

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

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 3. Параметры модификации пользователя

Ниже перечислены параметры, которые необходимо указать при модификации пользователя:

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 4. Параметры удалении пользователя

Ниже перечислены параметры, которые необходимо указать при удалении пользователя:

* **Имя пользователя**
Имя удаляемого пользователя.
Пример: `username-admin`

## 5. Выходные параметры

После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:

* **ca.crt**
Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.
Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **ca.p12**
PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.p12
```

* **ca.password**
Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

* **user.crt**
Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.
Используется совместно с приватным ключом `user.key` для аутентификации.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **user.key**
Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.key
```

* **user.p12**
PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo "<содержание поля>" | base64 -d > <название>.p12
```

* **user.password**
Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

Эти параметры используются для настройки TLS-подключения.

---

## 6. Пример конфигурации клиента внутри кластера

Пример пода:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: kafka-4
spec:
volumes:
- name: work
emptyDir: {}
containers:
- name: kcat
image: quay.io/strimzi/kafka:latest-kafka-4.0.0
command: ["sleep", "5600"]
volumeMounts:
- name: work
mountPath: /work
restartPolicy: Never
```

Создаём под и сохраняем сертификаты:

```bash
kubectl cp user.p12 kafka-4:/work/
kubectl cp ca.p12 kafka-4:/work/
```

Создаём файлы конфигурации:

```bash
cat > /work/user-read.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

```bash
cat > /work/user-write.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user-write.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

Листинг доступных топиков:

```bash
/opt/kafka/bin/kafka-topics.sh \\
--bootstrap-server kafkak8s-bootstrap-external:9093 \\
--command-config /work/user-read.properties \\
--list
```

Запись сообщений:

```bash
/opt/kafka/bin/kafka-console-producer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--producer.config /work/user-write.properties
```

Чтение сообщений:

```bash
/opt/kafka/bin/kafka-console-consumer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--from-beginning \\
--group <group> \\
--consumer.config /work/user-read.properties \\
--max-messages 50
```

---

## 7. Пример внешнего подключения с использованием **kcat**

**Листинг топиков**

```bash
kcat -b <externalConnect.bootstrap.fqdn>:9093 \\
-L \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Запись сообщения**

```bash
echo "hello from kcat" | kcat -P \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-write.crt \\
-X ssl.key.location=./user-write.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Чтение сообщений**

```bash
kcat -C \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-o beginning \\
-q \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

---


## 9. Рекомендации

* Минимизируйте набор разрешённых операций для повышения безопасности.
* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.
* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.
* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.

---"},{"svcOperationId":160,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Kafka/job/suspend/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":162,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Kafka/job/modify/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":169,"operation":"modify_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Kafka/job/modify_user/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.

---

## 1. Общая информация

Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.
Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.
Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.

---

## Доступные операции

- **create_user** — Создание пользователя
- **modify_user** — Модификация пользователя
- **delete_user** — Удаление пользователя

---

## 2. Параметры создания пользователя

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

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 3. Параметры модификации пользователя

Ниже перечислены параметры, которые необходимо указать при модификации пользователя:

* **Имя пользователя**
Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.
Пример: `username-admin`

* **Топик**
Название топика, к которому будут назначены права для данного пользователя.
Пример: `orders-events`.
Использовать маску нельзя (`orders*`), только полное название или `*`.

* **Операции**
Список разрешённых операций на указанном топике.
Пример: `Describe, Read, Write`

* **Группа**
Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.
Пример: `order-consumers`.

* **Разрешённые хосты**
Список хостов или подсетей, с которых разрешено подключение пользователя.
Пример: `192.168.1.0/24` или `*`.

---

## 4. Параметры удалении пользователя

Ниже перечислены параметры, которые необходимо указать при удалении пользователя:

* **Имя пользователя**
Имя удаляемого пользователя.
Пример: `username-admin`

## 5. Выходные параметры

После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:

* **ca.crt**
Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.
Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **ca.p12**
PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.p12
```

* **ca.password**
Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

* **user.crt**
Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.
Используется совместно с приватным ключом `user.key` для аутентификации.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.crt
```

* **user.key**
Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo '<содержание поля>' | base64 -d > <название>.key
```

* **user.p12**
PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.
Выдаеться в формате base64 для получения файла сертификата использовать команду
```bash
echo "<содержание поля>" | base64 -d > <название>.p12
```

* **user.password**
Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.

Эти параметры используются для настройки TLS-подключения.

---

## 6. Пример конфигурации клиента внутри кластера

Пример пода:

```yaml
apiVersion: v1
kind: Pod
metadata:
name: kafka-4
spec:
volumes:
- name: work
emptyDir: {}
containers:
- name: kcat
image: quay.io/strimzi/kafka:latest-kafka-4.0.0
command: ["sleep", "5600"]
volumeMounts:
- name: work
mountPath: /work
restartPolicy: Never
```

Создаём под и сохраняем сертификаты:

```bash
kubectl cp user.p12 kafka-4:/work/
kubectl cp ca.p12 kafka-4:/work/
```

Создаём файлы конфигурации:

```bash
cat > /work/user-read.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

```bash
cat > /work/user-write.properties <<'EOF'
security.protocol=SSL
ssl.keystore.type=PKCS12
ssl.keystore.location=/work/user-write.p12
ssl.keystore.password=<user.password>
ssl.truststore.type=PKCS12
ssl.truststore.location=/work/ca.p12
ssl.truststore.password=<ca.password>
EOF
```

Листинг доступных топиков:

```bash
/opt/kafka/bin/kafka-topics.sh \\
--bootstrap-server kafkak8s-bootstrap-external:9093 \\
--command-config /work/user-read.properties \\
--list
```

Запись сообщений:

```bash
/opt/kafka/bin/kafka-console-producer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--producer.config /work/user-write.properties
```

Чтение сообщений:

```bash
/opt/kafka/bin/kafka-console-consumer.sh \\
--bootstrap-server <адрес сервис брокера>:9093 \\
--topic <topic> \\
--from-beginning \\
--group <group> \\
--consumer.config /work/user-read.properties \\
--max-messages 50
```

---

## 7. Пример внешнего подключения с использованием **kcat**

**Листинг топиков**

```bash
kcat -b <externalConnect.bootstrap.fqdn>:9093 \\
-L \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Запись сообщения**

```bash
echo "hello from kcat" | kcat -P \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-write.crt \\
-X ssl.key.location=./user-write.key \\
-X ssl.endpoint.identification.algorithm=none
```

**Чтение сообщений**

```bash
kcat -C \\
-b <externalConnect.bootstrap.fqdn>:9093 \\
-t write-test \\
-o beginning \\
-q \\
-X security.protocol=SSL \\
-X ssl.ca.location=./ca.crt \\
-X ssl.certificate.location=./user-read.crt \\
-X ssl.key.location=./user-read.key \\
-X ssl.endpoint.identification.algorithm=none
```

---


## 9. Рекомендации

* Минимизируйте набор разрешённых операций для повышения безопасности.
* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.
* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.
* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.

---"},{"svcOperationId":166,"operation":"modify_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Kafka/job/modify_topic/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"# Инструкция по управлению топиками Apache Kafka через платформу

## 1. Общая информация

---

Топик — это основная сущность в Apache Kafka, предназначенная для приёма сообщений от продюсеров и передачи их консюмерам.
Платформа позволяет создавать, удалять и изменять параметры топиков без прямого доступа к брокерам, обеспечивая удобное управление через интерфейс или API.

---

## Доступные операции

- **create_topic** — Создание топика
- **modify_topic** — Модификация топика
- **delete_topic** — Удаление топика

---

## 2. Параметры создания топика

Ниже перечислены параметры, которые необходимо указать при создании нового топика:

* **Имя топика**
Название топика.
Должно быть уникальным в пределах кластера.
Пример: `orders-events`.

* **Партиции**
Количество партиций топика.
Рекомендуется выбирать с учётом уровня параллелизма потребителей и предполагаемой нагрузки.
Пример: `6`. Здесь важно рассказать о том как происходит расчет оптимального количества
Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.

* **Реплики**
Количество реплик для каждой партиции.
Обычно равно количеству доступных брокеров или меньше.
Пример: `3`.


---

## 4. Параметры модификации топика

Для уже существующих топиков можно изменять параметры. Все параметры являются опциональными:

* **Имя топика**
Название топика.
Пример: `orders-events`.

* **Партиции**
Новое количество партиций.
Пример: `12`.

* **Реплики**
Новое количество реплик.
Пример: `2`.

---

## 5. Рекомендации

* Планируйте количество партиций с запасом — уменьшение их числа невозможно.
* Количество реплик должно соответствовать требуемому уровню отказоустойчивости, но не превышать количество брокеров.
* Изменение параметров топика в рабочем окружении может временно влиять на производительность. Рекомендуется проводить крупные изменения в периоды минимальной нагрузки.

---"},{"svcOperationId":148,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Kafka/job/create/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":165,"operation":"create_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Kafka/job/create_topic/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"# Инструкция по управлению топиками Apache Kafka через платформу

## 1. Общая информация

---

Топик — это основная сущность в Apache Kafka, предназначенная для приёма сообщений от продюсеров и передачи их консюмерам.
Платформа позволяет создавать, удалять и изменять параметры топиков без прямого доступа к брокерам, обеспечивая удобное управление через интерфейс или API.

---

## Доступные операции

- **create_topic** — Создание топика
- **modify_topic** — Модификация топика
- **delete_topic** — Удаление топика

---

## 2. Параметры создания топика

Ниже перечислены параметры, которые необходимо указать при создании нового топика:

* **Имя топика**
Название топика.
Должно быть уникальным в пределах кластера.
Пример: `orders-events`.

* **Партиции**
Количество партиций топика.
Рекомендуется выбирать с учётом уровня параллелизма потребителей и предполагаемой нагрузки.
Пример: `6`. Здесь важно рассказать о том как происходит расчет оптимального количества
Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.

* **Реплики**
Количество реплик для каждой партиции.
Обычно равно количеству доступных брокеров или меньше.
Пример: `3`.


---

## 4. Параметры модификации топика

Для уже существующих топиков можно изменять параметры. Все параметры являются опциональными:

* **Имя топика**
Название топика.
Пример: `orders-events`.

* **Партиции**
Новое количество партиций.
Пример: `12`.

* **Реплики**
Новое количество реплик.
Пример: `2`.

---

## 5. Рекомендации

* Планируйте количество партиций с запасом — уменьшение их числа невозможно.
* Количество реплик должно соответствовать требуемому уровню отказоустойчивости, но не превышать количество брокеров.
* Изменение параметров топика в рабочем окружении может временно влиять на производительность. Рекомендуется проводить крупные изменения в периоды минимальной нагрузки.

---"}]},"runDurationMs":46} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/117.json b/artifacts/api-meta/test/services/117.json new file mode 100644 index 0000000..bfdcd5e --- /dev/null +++ b/artifacts/api-meta/test/services/117.json @@ -0,0 +1 @@ +{"queryDurationMs":45,"svc":{"svcId":117,"svc":"Nifi","svcShort":"nifi","code":null,"version":"null","orchestratorName":"Nifi","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Nifi/job/create/view/tags/job/null/buildWithParameters","isProductionReady":false,"resourceRealmTypeId":3,"iconSrc":null,"descr":"ETL-система","man":null,"operations":[{"svcOperationId":154,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Nifi/job/modify/view/tags/job/null/buildWithParameters","descr":null,"man":null},{"svcOperationId":151,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Nifi/job/delete/view/tags/job/null/buildWithParameters","descr":null,"man":null},{"svcOperationId":150,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Nifi/job/create/view/tags/job/null/buildWithParameters","descr":"Топик — это основная сущность в Apache Kafka, в которую продюсеры публикуют сообщения и из которой консюмеры их читают.
Платформа предоставляет удобный способ создавать и изменять параметры топиков без прямого обращения к брокерам Kafka.","man":null}]},"runDurationMs":45} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/119.json b/artifacts/api-meta/test/services/119.json new file mode 100644 index 0000000..f6add9b --- /dev/null +++ b/artifacts/api-meta/test/services/119.json @@ -0,0 +1 @@ +{"queryDurationMs":43,"svc":{"svcId":119,"svc":"Akhq","svcShort":"Akhq","code":null,"version":"0.0.1","orchestratorName":"Akhq","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Akhq/job/create/view/tags/job/0.0.1/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Web интерфейс Akhq для работы с Apache Kafka","man":"# Инструкция по развертыванию Apache Kafka через платформу

---
## 1. Общая информация
AKHQ — это веб-интерфейс для работы с кластерами Apache Kafka.
Позволяет просматривать топики, consumer group'ы, сообщения, ACL, схему безопасности, состояние брокеров и метаданные.
Поддерживает работу с несколькими кластерами Kafka одновременно, включая внутренние и внешние (TLS) подключения.

## Доступные операции
- **create** — Создание ресурса AKHQ
- **suspend** — Остановка ресурса
- **resume** — Возобновление работы ресурса
- **modify** — Модификация настроек
- **delete** — Удаление ресурса

---
## 2. Параметры развертывания кластера
Ниже перечислены параметры, которые необходимо указать при создании ресурса Kafka:

* **Кластер Kafka к которому нужно настроить подключение**
Для использования AKHQ необходимо предварительно развернуть сервис Kafka. Пример: `kafka-external`.

* **Платформа для развертывания:**
Платформа для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.

* **Количество узлов в сети:**
Количество узлов для работы Akhq. Пример `2`

* **Квота (megabyte) памяти пода:**
Квота памяти пода в мегабайтах. Пример: `512`

* **Квота (millicore ) ядра пода:**
Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `500`

* **Имя домена:**
Dns Имя по которому будет происходить обращение к сервису. Указать необходимо уникальное имя до . ( то есть если необходимо получить dns ui) Пример: `kafka-external`

---
## 4. Выходные параметры
После успешного развертывания ресурса Kafka платформа возвращает ряд параметров.
Ключевым из них является:

**connectionUrl**
Это полное доменное имя (FQDN), по которому будет доступен интерфейс AKHQ. После развёртывания подождите несколько минут — UI станет доступен по HTTPS, как только все сервисы полностью запустятся.

**Учетные данные**
Здесь представлены поля для ввода логина и пароля, с помощью которых вы сможете авторизоваться в сервисе.

---
## 5. Дополнительная информация
Учётные записи, созданные для работы с AKHQ, предоставляют доступ только для просмотра данных. Для управления Kafka, пожалуйста, используйте возможности личного кабинета.
---","operations":[{"svcOperationId":180,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Akhq/job/modify/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":176,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Akhq/job/delete/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":178,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Akhq/job/resume/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":177,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Akhq/job/suspend/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":175,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Akhq/job/create/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null}]},"runDurationMs":43} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/12.json b/artifacts/api-meta/test/services/12.json new file mode 100644 index 0000000..cdd76e1 --- /dev/null +++ b/artifacts/api-meta/test/services/12.json @@ -0,0 +1 @@ +{"queryDurationMs":103,"svc":{"svcId":12,"svc":"S3 Object Storage","svcShort":"s3","code":"paas.s3.ceph","version":"1.0.5","orchestratorName":"Ceph","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/s3/job/Ceph/job/create/view/tags/job/1.0.5/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":1,"iconSrc":"https://upload.wikimedia.org/wikipedia/commons/3/32/AWS_Simple_Icons_Storage_Amazon_S3.svg","descr":"Масштабируемое хранилище данных","man":"Руководство доступно по ссылке:
https://docs.s3.msk-1.ngcloud.ru/s3/s3.description.html","operations":[{"svcOperationId":3,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/s3/job/Ceph/job/resume/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null},{"svcOperationId":2,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/s3/job/Ceph/job/suspend/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null},{"svcOperationId":6,"operation":"create_sub_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/s3/job/Ceph/job/create_sub_user/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null},{"svcOperationId":5,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/s3/job/Ceph/job/delete/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null},{"svcOperationId":1,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/s3/job/Ceph/job/create/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null},{"svcOperationId":7,"operation":"delete_sub_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/s3/job/Ceph/job/delete_sub_user/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null},{"svcOperationId":4,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/s3/job/Ceph/job/modify/view/tags/job/1.0.5/buildWithParameters","descr":"При первичном вызове операции услуга Trial прекращает действие","man":"При первичном вызове операции услуга Trial прекращает действие"}]},"runDurationMs":104} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/120.json b/artifacts/api-meta/test/services/120.json new file mode 100644 index 0000000..16d5f83 --- /dev/null +++ b/artifacts/api-meta/test/services/120.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svc":{"svcId":120,"svc":"ClickHouse","svcShort":"clickhouse","code":null,"version":"0.0.4","orchestratorName":"ClickHouse","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/create/view/tags/job/0.0.4/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Управляемая база данных ClickHouse","man":"# Инструкция по управлению кластерами и пользователями ClickHouse

---

## Общая информация

ClickHouse — это колоночная система управления базами данных, предназначенная для обработки аналитических запросов в реальном времени. Платформа позволяет создавать, удалять, приостанавливать и возобновлять кластеры ClickHouse, а также управлять базами данных и пользователями.

Кластер создаётся через оператор Altinity (`https://github.com/Altinity/clickhouse-operator`) в ресурсной платформе типа `k8s`

Кластеры могут создаваться шардированными с произвольным количеством реплик. Для обеспечения отказоустойчивости и координации обязательно включение параметра `Создать ClickHouse-Keeper`.

Кластера создаются с обязательным бекапом. Для этого необходимо предварительно создать услугу `S3 Object Storage`.
---

## Доступные операции

* **create** — Создание кластера
* **delete** — Удаление кластера
* **suspend** — Приостановка работы кластера
* **resume** — Возобновление работы кластера
* **create_database** — Создание базы данных
* **delete_database** — Удаление базы данных
* **create_user** — Создание пользователя и настройка прав доступа к базе данных
* **delete_user** — Удаление пользователя

## Процесс создания и первого подключения

1. Выполнить операцию `create` - будет создан кластер
2. Выполнить операцию `create_database` - будет создана база данных
3. Выполнить операцию `create_user` - будет создан пользователь (выбрать доступ подключения к БД, созданной в п.2)

## Примеры подключения

### Подключение через HTTP-интерфейс

```bash
# Проверка доступности кластера
curl "http://<username>:<password>@<host>:8123/" -d "SELECT 1"

# Выполнение запроса
curl "http://<username>:<password>@<host>:8123/" -d "SHOW DATABASES"
```

## Простые кейсы
*Создать БД и обычной таблицы*
```clickhouse
CREATE TABLE database.table
(
id UInt64,
value String
)
ENGINE = MergeTree()
ORDER BY id;

INSERT INTO database.table SELECT number, toString(number) FROM numbers(10000000);

SELECT count() FROM database.table;
```
Базы и таблицы не реплицируются без специального ключа (`ON CLUSTER 'clickhousek8s'`)
В случае создания в стиле, описанным выше, необходимо будет выполнять действия на всех шардах/репликах


*Создание БД и шардированной таблицы*
```clickhouse
CREATE TABLE database.localUsers
(
id UInt64,
value String
)
ENGINE = MergeTree()
ORDER BY id;

CREATE TABLE database.shardedTable
AS localUsers
ENGINE = Distributed('clickhousek8s', 'database', 'localUsers', id);

INSERT INTO shardedTable SELECT number, toString(number) FROM numbers(10000000);

SELECT count() FROM shardedTable;
```
Важный момент - в данном примере таблицы придётся также выполнять на всех нодах ClickHouse

*Создание реплицируемой и шардированной таблицы*
```clickhouse
CREATE TABLE IF NOT EXISTS database.localUsers ON cluster 'clickhousek8s'
(
user_id UInt64,
name String,
email String
)
ENGINE = ReplicatedMergeTree(
'/clickhouse/tables/{shard}/localUsers',
'{replica}'
)
ORDER BY user_id;

CREATE TABLE IF NOT EXISTS database.users ON cluster 'clickhousek8s'
AS database.localUsers
ENGINE = Distributed('clickhousek8s', 'database', 'localUsers', rand());

INSERT INTO database.users VALUES (1, 'Alice', 'alice@example.com');
INSERT INTO database.users VALUES (2, 'Bob', 'bob@example.com');
INSERT INTO database.users VALUES (3, 'Charlie', 'charlie@example.com');
INSERT INTO database.users VALUES (4, 'David', 'david@example.com');
INSERT INTO database.users VALUES (5, 'Gosha', 'gosha@example.com');
INSERT INTO database.users VALUES (6, 'Eve', 'eve@example.com');
INSERT INTO database.users VALUES (7, 'Frank', 'frank@example.com');
INSERT INTO database.users VALUES (8, 'Grace', 'grace@example.com');
INSERT INTO database.users VALUES (9, 'Hannah', 'hannah@example.com');
INSERT INTO database.users VALUES (10, 'Ivan', 'ivan@example.com');

SELECT * FROM database.localUsers;
SELECT * FROM database.users;

SELECT COUNT(*) AS total_users FROM database.users;
SELECT COUNT(*) AS total_users_local FROM database.localUsers;
```","operations":[{"svcOperationId":187,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/delete_user/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":188,"operation":"delete_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/delete_database/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"Необратимое действие!!!
Трижды подумай, заблокируй телефон тимлида и не выполняй это действие"},{"svcOperationId":184,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/delete/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"Удаление возможно только после остановки сервиса через операцию `suspend`
После выполнения операции необходимо выждать определенное кол-во времени"},{"svcOperationId":183,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/resume/view/tags/job/0.0.4/buildWithParameters","descr":"Восстанавливает все поды и приводит кластер в работоспособный вид","man":null},{"svcOperationId":185,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/create_user/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":181,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/create/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"Операция создания кластера ClickHouse

Для подключения к кластеру также необходимо создать базу данных через операцию `create_database` и создание пользователя через операцию `create_user`"},{"svcOperationId":189,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/modify/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":186,"operation":"create_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/create_database/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"База данных создаётся на всех репликах кластера ClickHouse"},{"svcOperationId":182,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ClickHouse/job/suspend/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"Операция приводит к удалению всех подов
Persistent Volume остаются нетронутыми"}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/13.json b/artifacts/api-meta/test/services/13.json new file mode 100644 index 0000000..b1c6ed7 --- /dev/null +++ b/artifacts/api-meta/test/services/13.json @@ -0,0 +1 @@ +{"queryDurationMs":88,"svc":{"svcId":13,"svc":"S3 бакет","svcShort":"s3bucket","code":null,"version":"1.0.3","orchestratorName":"Bucket","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/s3/job/Bucket/job/create/view/tags/job/1.0.3/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":1,"iconSrc":"https://upload.wikimedia.org/wikipedia/commons/3/32/AWS_Simple_Icons_Storage_Amazon_S3.svg","descr":"Бакет в сервисе S3","man":null,"operations":[{"svcOperationId":51,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/s3/job/Bucket/job/create/view/tags/job/1.0.3/buildWithParameters","descr":null,"man":null},{"svcOperationId":52,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/s3/job/Bucket/job/delete/view/tags/job/1.0.3/buildWithParameters","descr":null,"man":null}]},"runDurationMs":88} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/149.json b/artifacts/api-meta/test/services/149.json new file mode 100644 index 0000000..8bb9ca0 --- /dev/null +++ b/artifacts/api-meta/test/services/149.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svc":{"svcId":149,"svc":"VALO Cloud","svcShort":"valoTenant","code":null,"version":"0.0.1","orchestratorName":"Tenant","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/valo/job/Tenant/job/create/view/tags/job/0.0.1/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":8,"iconSrc":null,"descr":"Корпоративная система обмена и синхронизации файлов","man":"# Инструкция по развертыванию Тенант Valo через платформу

## 1. Общая информация
Тенант Valo — логический изолированный экземпляр сервиса VALO Cloud, предоставляющий защищённое облачное хранилище, синхронизацию данных и доступ к документам с различных устройств. При создании тенант автоматически разворачивается в тестовом режиме сроком на 2 месяца. Перевод в промышленную эксплуатацию выполняется отдельной операцией.

### Доступные операции

* **create** — создание нового тенанта в тестовом режиме сроком на 2 месяца.
* **modify** — изменение настроек тенанта, включая перевод из ТЕСТ в ПРОД.
* **suspend** — выключение (приостановка работы) тенанта.
* **resume** — включение ранее приостановленного тенанта.
* **delete** — удаление тенанта; доступно только после выполнения операции suspend.

---

## 2. Параметры развертывания

Параметры входных данных операции **create**:

### Платформа для развертывания
Описание: платформа, на которой будет создан тенант.
Пример значения: `valo.ngcloud.ru`.

### DNS-Префикс
Описание: Будет добавлено в зону valo.ngcloud.ru
Пример значения: `mysimpledomain`.

### Параметры хранилища
Описание: Сколько места будет выделено под использование в тенанте. Данные хранятся в S3. Размер указывается в Gigabytes
Пример значения: `10`.

### Настройки тенанта
Описание: Ряд конфигурации Valo-тенанта, такие как настройки пользователя и доступного функционала
Пример значения: `опционально в рамках настройки`.

---

## 3. Рекомендованные характеристики

### Тестовое окружение
Достаточно развернуть тенант в ТЕСТ. Срок предоставляется в 2 месяца. По истечению срока тенант автоматически переводится в `suspend` на стороне ресурсной платформы

### Промышленное окружение
Для разблокировки используйте операцию `modify`

---

## 4. Выходные параметры

Услуга предоставляет следующие выходные параметры (формируются в процессе операций):

### Статус тенанта
Отражает текущее состояние и параметры.

---

## 5. Дополнительная информация
Тенант всегда создаётся в режиме ТЕСТ и не может быть сразу переведён в ПРОД без операции modify.
Удаление тенанта возможно только после его выключения с помощью операции suspend.
Срок тестового режима составляет 2 месяца с момента создания.
Операции suspend и resume используются для временного управления доступностью сервиса без потери конфигурации.
","operations":[{"svcOperationId":205,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/valo/job/Tenant/job/resume/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":204,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/valo/job/Tenant/job/suspend/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":206,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/valo/job/Tenant/job/delete/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":203,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/valo/job/Tenant/job/modify/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":202,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/valo/job/Tenant/job/create/view/tags/job/0.0.1/buildWithParameters","descr":"При создании тенант предоставляется всегда в ТЕСТ (2 месяца с момента создания)
Для продления и переведения в ПРОД, воспользуйтесь в дальнейшем операцией modify","man":null}]},"runDurationMs":55} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/150.json b/artifacts/api-meta/test/services/150.json new file mode 100644 index 0000000..7a3a408 --- /dev/null +++ b/artifacts/api-meta/test/services/150.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svc":{"svcId":150,"svc":"Kubernetes кластер Штурвал","svcShort":"k8sSthutrvalCluster","code":"paas.k8s.stw","version":"1.0.1","orchestratorName":"SthutrvalCluster","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SthutrvalCluster/job/create/view/tags/job/1.0.1/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Платформа управления K8s
","man":"Перед разворачиванием убедиться, что в облаке есть 2 свободных невыделенных IP в пуле","operations":[{"svcOperationId":108,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SthutrvalCluster/job/create/view/tags/job/1.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":109,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SthutrvalCluster/job/delete/view/tags/job/1.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":110,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SthutrvalCluster/job/modify/view/tags/job/1.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":174,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SthutrvalCluster/job/resume/view/tags/job/1.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":173,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SthutrvalCluster/job/suspend/view/tags/job/1.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":179,"operation":"update_secrets","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SthutrvalCluster/job/update_secrets/view/tags/job/1.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":253,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SthutrvalCluster/job/reconcile/view/tags/job/1.0.1/buildWithParameters","descr":null,"man":null}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/19.json b/artifacts/api-meta/test/services/19.json new file mode 100644 index 0000000..e26acfb --- /dev/null +++ b/artifacts/api-meta/test/services/19.json @@ -0,0 +1 @@ +{"queryDurationMs":93,"svc":{"svcId":19,"svc":"Организация в Cloud Director","svcShort":"vcOrg","code":null,"version":"1.0.2","orchestratorName":"Org","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Org/job/create/view/tags/job/1.0.2/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":2,"iconSrc":null,"descr":null,"man":"# Инструкция по развертыванию Организация в Cloud Director через платформу

## 1. Общая информация

Сервис **Организация в Cloud Director** предназначен для управления изолированными организационными единицами (тенантами) внутри инфраструктуры Cloud Director. Он обеспечивает создание, модификацию и администрирование организаций, предоставление им облачных ресурсов, а также контроль уровня доступа. Сервис используется для организации рабочих окружений потребителей, управления жизненным циклом организаций и их сетевой инфраструктурой.

### Доступные операции

**create** — Создание новой организации с заданными характеристиками и типом доступа.
**delete** — Удаление организации после перехода в состояние suspend; приводит к удалению всех связанных сущностей.
**modify** — Изменение параметров внутри организации (на текущий момент поддерживается изменение ipSpaces).
**suspend** — Заморозка организации, ограничение возможности изменения и добавления сущностей.
**resume** — Разморозка организации, восстановление функций управления.

---

## 2. Параметры развертывания

Параметры входных данных операции **create**:

### Платформа для развертывания
Описание: платформа, на которой будет создана организация.
Пример значения: `ngcloud.ru`.

### Тип организации
Описание: тип создаваемой организации.
Варианты:
- `iaas` — организация с прямым доступом к облаку и авторизацией через Keycloak.
- `saas` — организация под управлением Nubes, без прямого доступа к облаку.

---

## 3. Рекомендованные характеристики

### Тестовое окружение
- Тип организации: `iaas` для обеспечения полного доступа к облачным ресурсам и самостоятельного управления.

### Промышленное окружение
- Тип организации: `saas` (упрощённая модель использования).

---

## 4. Выходные параметры

Услуга предоставляет следующие выходные параметры (формируются в процессе операций):

### Url организации
Для быстрого доступа в тенант

### Статус организации
Отражает текущее состояние и параметры.

---

## 5. Дополнительная информация

- Для конфигурации внешних IP внутри организации необходимо предварительно создать:
-- хотя бы один **Виртуальный датацентр (VDC)** привязанный к этой организации;
-- хотя бы один **Сетевой шлюз периметра (Edge Gateway)**, привязанный к vdc выше.
- Удаление организации возможно только через 14 дней после перевода в состояние suspend.
- Удаление организации приводит к удалению всех связанных сущностей: VDC, Edge Gateway, пулов IP, сетей, ВМок и иных объектов.
- Операция suspend не останавливает виртуальные машины, но блокирует любые изменения инфраструктуры внутри организации.
- Для iaas-организаций доступ осуществляется через Keycloak.","operations":[{"svcOperationId":249,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Org/job/reconcile/view/tags/job/1.0.2/buildWithParameters","descr":"Необходимо для актуализации состояния организации.
Операция приводит инстанс услуги к текущей целевой модели, принятой в Личном Кабинете: обновляет информацию из Cloud Director, производит миграцию состояния услуги до последней версии схемы","man":null},{"svcOperationId":144,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Org/job/resume/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":136,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Org/job/create/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":"`IaaS` - Доступ в Keycloak предоставляется пользователю, который создаёт услугу
`SaaS` - Без доступа к Keycloak"},{"svcOperationId":143,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Org/job/suspend/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":"Операция **не останавливает ВМки** в облаке, но не даёт редактировать все сущности внутри тенанта"},{"svcOperationId":137,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Org/job/delete/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":"Удалить возможно только через 14 дней после выполнения операции `suspend`
**ОСТОРЖНО: Удаление приводит к полному удалению всех сущностей внутри этого тенанта**

Если существуют инстансы VDC, Edge, vApp, Vm или Kubernetes-кластер Штурвал, которые были созданы, из ЛК удалены не будут. Необходимо обратиться к `технической поддержке` для удаления инстансов"},{"svcOperationId":207,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Org/job/modify/view/tags/job/1.0.2/buildWithParameters","descr":null,"man":"Для возможности изменения параметров предварительно необходимо создать **Виртуальный датацентр (VDC)**, потом **Сетевой шлюз периметра (Edge Gateway)**
Также при удалении ipSpaces убедитесь, что все внешние IP удалены. В случае если хоть одна привязка vIP есть, данный ipSpace удалён **не будет**"}]},"runDurationMs":93} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/2.json b/artifacts/api-meta/test/services/2.json new file mode 100644 index 0000000..3039561 --- /dev/null +++ b/artifacts/api-meta/test/services/2.json @@ -0,0 +1 @@ +{"queryDurationMs":45,"svc":{"svcId":2,"svc":"Темплейт k8s","svcShort":"template","code":null,"version":"0.0.7","orchestratorName":"Template","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Template/job/create/view/tags/job/0.0.7/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Болванка для тестирования","man":null,"operations":[{"svcOperationId":74,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Template/job/create/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":75,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Template/job/delete/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":76,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Template/job/modify/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":97,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Template/job/suspend/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":98,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Template/job/resume/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null}]},"runDurationMs":46} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/20.json b/artifacts/api-meta/test/services/20.json new file mode 100644 index 0000000..40f7fea --- /dev/null +++ b/artifacts/api-meta/test/services/20.json @@ -0,0 +1 @@ +{"queryDurationMs":42,"svc":{"svcId":20,"svc":"Организация [DEPRECATED]","svcShort":"vcOrgSaas","code":null,"version":"1.0.0","orchestratorName":"OrgSaas","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/OrgSaas/job/create/view/tags/job/1.0.0/buildWithParameters","isProductionReady":false,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Без интеграции Keycloak","man":"Верхнеуровневая сущность создаваемая для Заказчика.
Внутри Организация вы можете создать: Виртуальные датацентры, Каталоги.","operations":[{"svcOperationId":8,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/OrgSaas/job/create/view/tags/job/1.0.0/buildWithParameters","descr":"Создание организации в Cloud Director
Id в клауд директоре создаётся на основе contragentCode","man":"Создание организации в Cloud Director
Id в клауд директоре создаётся на основе contragentCode"},{"svcOperationId":23,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/OrgSaas/job/delete/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null},{"svcOperationId":118,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/OrgSaas/job/suspend/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null},{"svcOperationId":119,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/OrgSaas/job/resume/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null}]},"runDurationMs":42} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/21.json b/artifacts/api-meta/test/services/21.json new file mode 100644 index 0000000..dc5b9f0 --- /dev/null +++ b/artifacts/api-meta/test/services/21.json @@ -0,0 +1 @@ +{"queryDurationMs":95,"svc":{"svcId":21,"svc":"Виртуальный датацентр (vDC)","svcShort":"vc_vdc","code":null,"version":"1.0.5","orchestratorName":"Vdc","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vdc/job/create/view/tags/job/1.0.5/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Выделение вычислительных ресурсов","man":"# Инструкция по развертыванию Виртуальный датацентр (vDC) через платформу

## 1. Общая информация

**Виртуальный датацентр (vDC)** — это логическая изолированная среда в VMware Cloud Director, предназначенная для размещения и управления виртуальными машинами, сетевой инфраструктурой и ресурсами хранения. Сервис обеспечивает выделение вычислительных ресурсов под конкретную организацию и предоставляет гибкие параметры масштабирования, контроля потребления и разделения ресурсов.

### Доступные операции

**create** — Создание виртуального датацентра (vDC) с заданными параметрами CPU, RAM, Storage и сетевой конфигурацией.
**delete** — Удаление vDC. Требуется предварительный перевод vDC в состояние *suspend*. Полное удаление возможно через 14 дней.
**modify** — Внесение изменений в параметры ресурсов (CPU/RAM/Storage), выделенных для vDC.
**suspend** — Заморозка vDC. Новые ресурсы или изменения внутри vDC становятся невозможными, работа ВМ не останавливается.
**resume** — Разморозка vDC. Восстановление возможности управления сущностями внутри vDC.

---

## 2. Параметры развертывания

Ниже перечислены входные параметры операции **create**.

### UUID Организации
Уникальный идентификатор организации в Cloud Director. Перед созданием vDC требуется предварительное создание услугу `Организация в Cloud Director`.

### Provider VDC в Cloud Director
Свойство ресурсной платформы, определяющее, какой пул физических ресурсов будет использоваться.

### Network Pool в Cloud Director
Определяет возможности сетевой конфигурации, включая создание Edge Gateway и выход во внешние сети.

### Гарантированная доля ЯДЕР
Гарантированный процент вычислительных ресурсов (CPU), закрепленный за vDC. Значение устанавливается разово при создании.

### Гарантированная доля ОЗУ
Гарантированный процент оперативной памяти, закрепленный за vDC. Также задаётся один раз при создании.

### Сколько аллоцировать на VDC ЯДЕР
Количество виртуальных ядер, выделяемых в рамках vDC.

### Сколько аллоцировать на VDC ОЗУ
Количество оперативной памяти в GB, выделяемой для vDC.

### Конфигурация Storage
Набор дисковых политик и их объёмов, выделяемых для vDC. Указывается имя политики и требуемый размер (GB).

---

## 3. Рекомендованные характеристики

### Тестовое окружение

- Количество ядер CPU: 10–20
- Аллоцируемая RAM: 16–64 GB
- Гарантированная доля CPU: 20%
- Гарантированная доля RAM: 20%
- Storage:
- Политика `SATA`
- Объём: 100–300 GB

### Промышленное окружение

- Количество ядер CPU: 16–128
- Аллоцируемая RAM: 64–512 GB
- Гарантированная доля CPU: 50%
- Гарантированная доля RAM: 50%
- Storage:
- Политики уровня `SSD`
- Объём: 1–10 TB, выбор несколько политик под разные нагрузки

---

## 4. Выходные параметры

Выходные параметры формируются операцией **create** (и используются другими операциями):

### Имя vDC
Уникальный идентификатор созданного виртуального датацентра. Используется в дальнейших операциях (modify, suspend, delete).

### Параметры выделенных ресурсов
Подтверждение итогового объёма CPU/RAM/Storage, выделенных vDC. Используются для учёта и контроля потребления.

---

## 5. Дополнительная информация

- Перед созданием vDC необходимо обеспечить наличие корректно созданной организации и доступных пула ресурсов ресурсной платформы.
- Гарантированная доля CPU и RAM задаётся **однократно при создании vDC**. После развертывания изменить эти значения невозможно; для изменения необходимо пересоздать vDC.
- Удаление vDC возможно только через **14 дней после перевода в состояние *suspend***. Удаление очищает все связанные сущности (ВМ, сети, каталоги), поэтому необходимо убедиться, что данные перенесены.
- Платформа Cloud Director использует концепцию изолированных организационных ресурсов, поэтому корректная настройка Provider VDC и Network Pool является обязательной при создании vDC.
- При изменении параметров (modify) изменяются только показатели CPU, RAM и Storage. Сетевые параметры и гарантированные доли остаются неизменными.
","operations":[{"svcOperationId":9,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vdc/job/create/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null},{"svcOperationId":112,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vdc/job/modify/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null},{"svcOperationId":250,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vdc/job/reconcile/view/tags/job/1.0.5/buildWithParameters","descr":"Необходимо для актуализации состояния виртуального ДЦ.
Операция приводит инстанс услуги к текущей целевой модели, принятой в Личном Кабинете: обновляет информацию из Cloud Director, производит миграцию состояния услуги до последней версии схемы","man":null},{"svcOperationId":172,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vdc/job/resume/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":null},{"svcOperationId":171,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vdc/job/suspend/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":"Операция **не останавливает ВМки** в облаке, но не даёт редактировать все сущности внутри VDC"},{"svcOperationId":24,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vdc/job/delete/view/tags/job/1.0.5/buildWithParameters","descr":null,"man":"Удалить возможно только через 14 дней после выполнения операции `suspend`
**ОСТОРЖНО: Удаление приводит к полному удалению всех сущностей внутри этого VDC**

Если существуют инстансы Edge, vApp, Vm или Kubernetes-кластер Штурвал, которые были созданы, из ЛК удалены не будут. Необходимо обратиться к `технической поддержке` для удаления инстансов"}]},"runDurationMs":95} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/22.json b/artifacts/api-meta/test/services/22.json new file mode 100644 index 0000000..4d67931 --- /dev/null +++ b/artifacts/api-meta/test/services/22.json @@ -0,0 +1 @@ +{"queryDurationMs":48,"svc":{"svcId":22,"svc":"Сетевой шлюз периметра (Edge)","svcShort":"vc_nsxt","code":null,"version":"0.0.9","orchestratorName":"Nsxt","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Nsxt/job/create/view/tags/job/0.0.9/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Обеспечение сетевой доступности в тенанте","man":"# Инструкция по развертыванию Сетевой шлюз периметра (Edge) через платформу

## 1. Общая информация

Сервис **Сетевой шлюз периметра (Edge)** предназначен для создания периметрового сетевого шлюза в рамках одного виртуального датацентра (vDC) или группы виртуальных датацентров (groupvDC).
При создании автоматически разворачивается routed-сеть с адресным пространством `10.10.102.0/24`.
Сервис обеспечивает сетевую изоляцию, маршрутизацию, а также может включать функциональность балансировщика нагрузки AVI (ALB) для последующей интеграции, включая поддержку кластеров Штурвал.

### Доступные операции

**create** — Создание нового Edge с привязкой к vDC или groupvDC и развёртыванием routed-сети.
**delete** — Удаление ранее созданного Edge. Недоступно при наличии зависимых услуг (vApp, VM, Кластер Штурвал).
**modify** — Изменение параметров и сетевых настроек существующего Edge.

---

## 2. Параметры развертывания

Ниже приведены параметры операции **create**.

### Тип родительской услуги
Определяет контекст размещения Edge.
Допустимые значения: `vdc`, `groupvdc`.
Использование:
- При выборе `vdc` обязателен параметр **UUID VDC**.
- При выборе `groupvdc` обязателен параметр **UUID Группы VDC**.

### UUID VDC
Идентификатор виртуального датацентра.
Необходимо предварительно создать vDC через услугу «Виртуальный датацентр (vDC)».
Указывается только при выборе родительского типа `vdc`.

### UUID Группы VDC
Идентификатор группы виртуальных датацентров.
Создаётся через услугу «Группа виртуальных датацентров (groupvDC)».
Используется при выборе родительского типа `groupvdc`.

### Включить ALB
Флаг активации AVI Load Balancer в Cloud Director.
Пример значения: `true`/`false`.
Нужен для развёртывания кластера Штурвал и возможности создания Virtual Services.

### Наименование segroup
Имя сервиса групп (segroup) на уровне ресурсной платформы.
Обязательно при включённом ALB.
Определяет группу, в которой будут выделяться пулы AVI для Virtual Services.

### virtualServicesCount
Количество резервируемых виртуальных сервисов (Virtual Services) на AVI.
Типичное значение: 1–10 в зависимости от нагрузки.

---

## 3. Рекомендованные характеристики

### Тестовое окружение (Test)

- Тип родительской услуги: `vdc`
- virtualServicesCount: 1–2
- ALB: выключен по умолчанию (включать только при необходимости тестирования Штурвала)
- segroup: задаётся только при включённом ALB
- VDC гарантии CPU/RAM: минимальные (поскольку изменить их после создания нельзя)

### Промышленное окружение (Production)

- Тип родительской услуги: `groupvdc` при работе с распределёнными нагрузками или `vdc` для локализованных проектов
- virtualServicesCount: 3–10, исходя из предполагаемого количества публикаций
- ALB: включён, если требуется высокая доступность сервисов или используется кластер Штурвал
- segroup: рекомендуется использовать выделенную группу под проект
- VDC гарантии CPU/RAM: повышенные, с учётом того, что изменить их после создания невозможно без пересоздания vDC

---

## 4. Выходные параметры

### Имя Edge
Уникальное название созданного сетевого шлюза, используется для ссылок и дальнейших операций.

### Имя routed-сети
Автоматически созданная routed-сеть с подсетью `10.10.102.0/24`, используется для подключения ресурсов.

### Параметры Edge
Набор параметров, указанных пользователем при создании: тип услуги, ALB, segroup, virtualServicesCount и др.
Используются в операциях modify и для анализа состояния сервиса.

---

## 5. Дополнительная информация

- В рамках сервиса **один раз при создании задаётся гарантированная доля CPU/RAM vDC**. Изменить её невозможно — требуется пересоздание vDC.
- Удаление Edge недоступно при наличии зависимых ресурсов (vApp, VM, кластер Штурвал).
- При использовании ALB необходимо корректно указывать segroup, чтобы обеспечить корректное выделение пулов AVI.
- При выборе режима `groupvdc` следует учитывать распределение нагрузки между несколькими vDC.
- SNAT для всех ресурсов внутри Edge можно активировать через операцию modify (параметры выделения VIP и ipSpace).

","operations":[{"svcOperationId":10,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Nsxt/job/create/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null},{"svcOperationId":111,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Nsxt/job/modify/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":"Для создания SNAT Правила убедитесь, что в организации есть свободные IP
Редактировать кол-во свободных IP можно в услуге `Организация в Cloud Director` -> `modify`"},{"svcOperationId":252,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Nsxt/job/reconcile/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null},{"svcOperationId":25,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Nsxt/job/delete/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":"Невозможно удалить если routed-сеть в Edge связана с:
- vApp
- VM
- Kubernetes-кластер Штурвал

Запустить операцию возможно, но будет ошибка"}]},"runDurationMs":48} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/23.json b/artifacts/api-meta/test/services/23.json new file mode 100644 index 0000000..3cade9c --- /dev/null +++ b/artifacts/api-meta/test/services/23.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svc":{"svcId":23,"svc":"VM в Cloud Director (старый формат) (vc_vm)","svcShort":"vc_vm","code":null,"version":"0.0.3","orchestratorName":"Vm","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vm/job/create/view/tags/job/0.0.3/buildWithParameters","isProductionReady":false,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Виртуальная машина без каких-либо особенностей.
Данная услуга запускает vc_ip для выдачи белого адреса и подключения к ВМ","man":"Виртуальная машина без каких-либо особенностей.
Данная услуга запускает vc_ip для выдачи белого адреса и подключения к ВМ","operations":[{"svcOperationId":27,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vm/job/suspend/view/tags/job/0.0.3/buildWithParameters","descr":null,"man":null},{"svcOperationId":29,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vm/job/delete/view/tags/job/0.0.3/buildWithParameters","descr":null,"man":null},{"svcOperationId":68,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vm/job/modify/view/tags/job/0.0.3/buildWithParameters","descr":"Операция автоматически останавливает ВМ.","man":"Операция автоматически останавливает ВМ."},{"svcOperationId":26,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vm/job/create/view/tags/job/0.0.3/buildWithParameters","descr":null,"man":null},{"svcOperationId":28,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vm/job/resume/view/tags/job/0.0.3/buildWithParameters","descr":null,"man":null}]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/24.json b/artifacts/api-meta/test/services/24.json new file mode 100644 index 0000000..4c124a0 --- /dev/null +++ b/artifacts/api-meta/test/services/24.json @@ -0,0 +1 @@ +{"queryDurationMs":46,"svc":{"svcId":24,"svc":"DEPRECATED Правила маршрутизации для VM (vc_nat)","svcShort":null,"code":null,"version":null,"orchestratorName":null,"createUrl":null,"isProductionReady":false,"resourceRealmTypeId":null,"iconSrc":null,"descr":"Правила маршрутизации в Cloud Director. Требует наличие сетей, ВМ
DEPRECATED","man":"Правила маршрутизации в Cloud Director. Требует наличие сетей, ВМ
DEPRECATED","operations":[]},"runDurationMs":46} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/25.json b/artifacts/api-meta/test/services/25.json new file mode 100644 index 0000000..2d51224 --- /dev/null +++ b/artifacts/api-meta/test/services/25.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svc":{"svcId":25,"svc":"Публичные IP адреса","svcShort":"vcexternalip","code":null,"version":"0.0.9","orchestratorName":"Ip","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Ip/job/create/view/tags/job/0.0.9/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Резервирование IP адреса","man":"**Обычно эта услуга разворачивается автоматически при развёртывании более сложных услуг**
Вручную создавать можно, однако услуга требует много параметров, о которых можно просто не знать

Резервировать публичные IP адреса можно только после создания NGcloud Organization, NGcloud Виртуальный датацентр, NGcloud Каталог, Сетевой шлюз периметра.
Вы можете назначить IP адрес для существующего экземпляра сервиса.","operations":[{"svcOperationId":56,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Ip/job/create/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null},{"svcOperationId":57,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Ip/job/delete/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null},{"svcOperationId":197,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Ip/job/modify/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/26.json b/artifacts/api-meta/test/services/26.json new file mode 100644 index 0000000..15fcefa --- /dev/null +++ b/artifacts/api-meta/test/services/26.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svc":{"svcId":26,"svc":"Виртуальный каталог ВМ (vApp)","svcShort":"vapp","code":null,"version":"0.0.8","orchestratorName":"Vapp","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vapp/job/create/view/tags/job/0.0.8/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Группировка виртуальных машин","man":"# Инструкция по развертыванию Виртуальный каталог ВМ (vApp) через платформу

## 1. Общая информация

**Виртуальный каталог ВМ (vApp)** — это логическая каталог, объединённая в единый управляемый объект. Сервис предназначен для совместного развертывания, управления жизненным циклом и сетевого взаимодействия набора связанных ВМ. Основные функции включают:
- централизованное управление включением, выключением и приостановкой группы ВМ;
- унифицированный сетевой доступ через привязанный Edge-шлюз;

### Доступные операции

**create** — Создание нового vApp с привязкой к заданным услугам VDC и Edge
**delete** — Удаление существующего vApp. Требуется предварительный перевод vApp в состояние *suspend*. Полное удаление возможно через 14 дней.
**suspend** — Остановка vApp (выключение всех ВМ внутри каталога)
**resume** — Запуск vApp (включение всех ВМ внутри каталога)

---

## 2. Параметры развертывания

Параметры берутся из операции **create**.

### UUID Услуги VDC
Уникальный идентификатор услуги «Виртуальный датацентр (vDC)».
Используется для определения вычислительной инфраструктуры, в которой будет развернут vApp.

### UUID Услуги Edge
Уникальный идентификатор услуги «Сетевой шлюз периметра (Edge)».
Обеспечивает маршрутизацию и сетевое подключение. Может быть привязан к группе VDC, поэтому выбирается отдельно.

### Имя vApp
Строгое имя, соответствующее маске формирования DNS-имени.
Используется как часть в DNS-имени при создании виртуальных машин.

---

## 3. Рекомендованные характеристики
Так как является промежуточным этапом для создания ВМ, все характеристики описываются в услуге `Виртуальная машина`

---

## 4. Выходные параметры

### Параметры vApp
Заданные при создании vApp

---

## 5. Дополнительная информация

- Привязка к VDC и Edge осуществляется раздельно, поскольку один Edge может обслуживать несколько VDC (через услугу `Группа виртуальных датацентров (groupvDC)`). Это гарантирует возможность развернуть ВМ в единой сети, но в разных виртуальных датацентрах.
- Перед удалением vApp необходимо вручную перевести его в состояние **suspend**. Удаление возможно только спустя 14 дней после этого шага.
- Операция delete удаляет весь vApp полностью, включая все виртуальные машины, связанные с ним.
- Рекомендуется заранее планировать сетевые связи и назначения DNS-имён для обеспечения корректной работы сервисов, развернутых внутри vApp.
- При проектировании инфраструктуры следует учитывать зависимости между Edge-шлюзом, VDC и размещаемыми ВМ, чтобы избежать ограничений при масштабировании и интеграции.","operations":[{"svcOperationId":69,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vapp/job/create/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null},{"svcOperationId":70,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vapp/job/delete/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null},{"svcOperationId":209,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vapp/job/resume/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null},{"svcOperationId":208,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/Vapp/job/suspend/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null}]},"runDurationMs":49} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/27.json b/artifacts/api-meta/test/services/27.json new file mode 100644 index 0000000..5d6cfc0 --- /dev/null +++ b/artifacts/api-meta/test/services/27.json @@ -0,0 +1 @@ +{"queryDurationMs":53,"svc":{"svcId":27,"svc":"VM в Cloud Director (vc_vmV2)","svcShort":"vc_vm_v2","code":null,"version":"0.0.1","orchestratorName":"VmV2","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VmV2/job/create/view/tags/job/0.0.1/buildWithParameters","isProductionReady":false,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Виртуальная машина с возможностью настройки Cloud Init
Можно развернуть в услуге несколько ВМ
В зависимости от настроек можно выдавать на ВМ vip + dns","man":null,"operations":[{"svcOperationId":102,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VmV2/job/resume/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":100,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VmV2/job/create/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":104,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VmV2/job/modify/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":103,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VmV2/job/suspend/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":101,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VmV2/job/delete/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null}]},"runDurationMs":53} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/28.json b/artifacts/api-meta/test/services/28.json new file mode 100644 index 0000000..f9ccb77 --- /dev/null +++ b/artifacts/api-meta/test/services/28.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svc":{"svcId":28,"svc":"Виртуальная машина","svcShort":"vc_vm_v3","code":null,"version":"0.0.8","orchestratorName":"VmV3","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VmV3/job/create/view/tags/job/0.0.8/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Создание виртуальной машины","man":"# Документация по разворачиванию ВМ в Личном кабинете

Данный сервис позволяет разворачивать виртуальные машины (ВМ) непосредственно из Личного кабинета (ЛК).

## Доступные операции
- **create** — Создание виртуальной машины
- **delete** — Удаление виртуальной машины
- **resume** — Запуск виртуальной машины
- **suspend** — Остановка виртуальной машины

---

## Параметры для развёртывания ВМ

### Обязательные параметры:

**vappUid**
UUID vApp, в которой будет создаваться виртуальная машина.
*Пример: WZ00400*

**vmName**
Уникальное имя виртуальной машины.
*Пример: test-vm*

**vmCpu**
Количество ядер процессора. Должно быть больше 0.
*Пример: 1*

**vmRam**
Объем оперативной памяти в гигабайтах. Должно быть больше 0.
*Пример: 1*


**accessPortList**
Белый список портов для доступа к виртуальной машине извне в формате JSON.
*Пример: ["22","10050]*

**imageVm**
Образ операционной системы для развёртывания.
*Доступные значения: RockyLinux_9-16G-cloudinit, Ubuntu_22-20G, Debian_13-20G*

**userLogin**
Логин пользователя для SSH-доступа.
*По умолчанию: myuser*

**userPublicKey**
Публичный SSH-ключ пользователя в формате OpenSSH.
*Пример: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...*

**needAddZabbixTemplate**
Значение истина\\ложь, определяющее будет ли добавлен хост в zabbix.
*Пример: true*

### Опциональные параметры:

**accessIpList**
Белый список IP-адресов для доступа к виртуальной машине в формате JSON. Если оставить пустым, вм будет доступена со всех адресов.
*Пример: ["192.168.1.1", "10.0.0.5"]*

**vmDisk**
Размер дополнительного диска в гигабайтах. Должно быть больше 0.
*Пример: 50*

**ipSpaceName**
Внешний IP-адрес. Если не требуется — укажите значение "no-needed" (В нем не будет работать сбор метрик zabbix).

**cloudInit**
YAML-скрипт для кастомизации системы через cloud-init.

---

## Доступные образы операционных систем

### RockyLinux_9-16G-cloudinit
Базовый образ на основе Rocky Linux 9 (Rocky-9.6-x86_64-minimal) для серверных задач.
- Размер системного диска: 16 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

### Ubuntu_22-20G
Образ на основе Ubuntu Server 22.04 LTS для облачного окружения.
- Размер системного диска: 20 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

### Debian_13-20G
Образ на основе Debian 13 (Trixie) для стабильной серверной работы.
- Размер системного диска: 20 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

---

## Пример использования Cloud-init

```yaml
users:
- name: myuser
sudo: ALL=(ALL) NOPASSWD:ALL
groups: sudo
shell: /bin/bash
ssh-authorized-keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...

packages:
- nginx

runcmd:
- systemctl enable --now nginx
- systemctl restart nginx
```

---

## Результат выполнения

После успешного развёртывания в Личном кабинете появится новая виртуальная машина с заданными характеристиками. SSH-доступ осуществляется с использованием указанных логина и публичного ключа.

---

## Важные примечания

### Особенности работы:
- Для отключения внешнего IP укажите значение "no-needed" в параметре ipSpaceName
- Параметр cloudInit является опциональным

### Ограничения:
- Не рекомендуется использовать продолжительные инструкции в cloud-init (таймаут 5 минут)
- Не поддерживается запись файлов через cloud-init
- Не реализовано создание резервных копий ВМ

---

## Диагностика проблем с cloud-init

### Основной лог-файл:
```bash
/var/log/cloud-init.log
```

### Пакет не устанавливается:
- Проверьте доступность пакета в репозитории
- Убедитесь в правильности написания имени пакета
- Попробуйте установить вручную: `apt install <имя_пакета>` (Debian/Ubuntu) или `dnf install <имя_пакета>` (Rocky Linux)

### Команда не выполняется:
- Проверьте наличие требуемой утилиты в системе
- Убедитесь в правильности синтаксиса команды
- Попробуйте выполнить команду вручную для диагностики","operations":[{"svcOperationId":132,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VmV3/job/create/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":"# Документация по использованию услуги развёртывания ВМ в Личном кабинете

Данный сервис позволяет разворачивать виртуальные машины (ВМ) непосредственно из Личного кабинета (ЛК).

## Доступные операции
- **create** — Создание виртуальной машины
- **delete** — Удаление виртуальной машины
- **resume** — Запуск виртуальной машины
- **suspend** — Остановка виртуальной машины

---

## Параметры для развёртывания ВМ

### Обязательные параметры:

**vappUid**
UUID vApp, в которой будет создаваться виртуальная машина.
*Пример: WZ00400*

**vmName**
Уникальное имя виртуальной машины.
*Пример: test-vm*

**vmCpu**
Количество ядер процессора. Должно быть больше 0.
*Пример: 1*

**vmRam**
Объем оперативной памяти в гигабайтах. Должно быть больше 0.
*Пример: 1*


**accessPortList**
Белый список портов для доступа к виртуальной машине извне в формате JSON.
*Пример: ["22","10050]*

**imageVm**
Образ операционной системы для развёртывания.
*Доступные значения: RockyLinux_9-16G-cloudinit, Ubuntu_22-20G, Debian_13-20G*

**userLogin**
Логин пользователя для SSH-доступа.
*По умолчанию: myuser*

**userPublicKey**
Публичный SSH-ключ пользователя в формате OpenSSH.
*Пример: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...*

**needAddZabbixTemplate**
Значение истина\\лож определяющее будет ли добавлен хост в zabbix.
*Пример: true*

### Опциональные параметры:

**accessIpList**
Белый список IP-адресов для доступа к виртуальной машине в формате JSON. Если оставить пустым, вм будет доступена со всех адресов.
*Пример: ["192.168.1.1", "10.0.0.5"]*

**vmDisk**
Размер дополнительного диска в гигабайтах. Должно быть больше 0.
*Пример: 50*

**ipSpaceName**
Внешний IP-адрес. Если не требуется — укажите значение "no-needed".

**cloudInit**
YAML-скрипт для кастомизации системы через cloud-init.

---

## Доступные образы операционных систем

### RockyLinux_9-16G-cloudinit
Базовый образ на основе Rocky Linux 9 (Rocky-9.6-x86_64-minimal) для серверных задач.
- Размер системного диска: 16 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

### Ubuntu_22-20G
Образ на основе Ubuntu Server 22.04 LTS для облачного окружения.
- Размер системного диска: 20 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

### Debian_13-20G
Образ на основе Debian 13 (Trixie) для стабильной серверной работы.
- Размер системного диска: 20 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

---

## Пример использования Cloud-init

```yaml
users:
- name: myuser
sudo: ALL=(ALL) NOPASSWD:ALL
groups: sudo
shell: /bin/bash
ssh-authorized-keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...

packages:
- nginx

runcmd:
- systemctl enable --now nginx
- systemctl restart nginx
```

---

## Результат выполнения

После успешного развёртывания в Личном кабинете появится новая виртуальная машина с заданными характеристиками. SSH-доступ осуществляется с использованием указанных логина и публичного ключа.

---

## Важные примечания

### Особенности работы:
- Для отключения внешнего IP укажите значение "no-needed" в параметре ipSpaceName
- Параметр cloudInit является опциональным

### Ограничения:
- Не рекомендуется использовать продолжительные инструкции в cloud-init (таймаут 5 минут)
- Не поддерживается запись файлов через cloud-init
- Не реализовано создание резервных копий ВМ

---

## Диагностика проблем с cloud-init

### Основной лог-файл:
```bash
/var/log/cloud-init.log
```

### Пакет не устанавливается:
- Проверьте доступность пакета в репозитории
- Убедитесь в правильности написания имени пакета
- Попробуйте установить вручную: `apt install <имя_пакета>` (Debian/Ubuntu) или `dnf install <имя_пакета>` (Rocky Linux)

### Команда не выполняется:
- Проверьте наличие требуемой утилиты в системе
- Убедитесь в правильности синтаксиса команды
- Попробуйте выполнить команду вручную для диагностики"},{"svcOperationId":133,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VmV3/job/delete/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null},{"svcOperationId":135,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VmV3/job/resume/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null},{"svcOperationId":134,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VmV3/job/suspend/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null},{"svcOperationId":164,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VmV3/job/redeploy/view/tags/job/0.0.8/buildWithParameters","descr":"Полная потеря данных гарантирована
Но будет полностью сброшенная машина","man":null},{"svcOperationId":159,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VmV3/job/modify/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/29.json b/artifacts/api-meta/test/services/29.json new file mode 100644 index 0000000..ced06af --- /dev/null +++ b/artifacts/api-meta/test/services/29.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svc":{"svcId":29,"svc":"Группа датацентров","svcShort":"vcVdcGroup","code":null,"version":"0.0.2","orchestratorName":"VdcGroup","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VdcGroup/job/create/view/tags/job/0.0.2/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Обеспечение сетевой доступности между датацентрами","man":"# Инструкция по развертыванию Группа виртуальных датацентров (groupvDC) через платформу

## 1. Общая информация

Сервис **Группа виртуальных датацентров (groupvDC)** предназначен для логического объединения нескольких виртуальных датацентров (vDC) в единую группу. Это позволяет растягивать SDN между разными vDC и централизованно управлять сетевой связностью. Управление инфраструктурой осуществляется через Cloud Director.
Сервис применяется в случаях, когда требуется обеспечить единое сетевое пространство для распределенных виртуальных датацентров.

### Доступные операции

**create** — Создание новой группы виртуальных датацентров.
**delete** — Удаление существующей группы vDC.
**add_vdc** — Добавление дополнительного виртуального датацентра в группу.
**remove_vdc** — Удаление ранее добавленного виртуального датацентра из группы.

---

## 2. Параметры развертывания

Параметры операции **create**:

### UUID VDC
Идентификатор виртуального датацентра, который будет являться первичным в группе.
Описание: требуется предварительно создать виртуальный датацентр с помощью услуги `Виртуальный датацентр (vDC)`.

---

## 3. Рекомендованные характеристики

### Тестовое окружение
- Для тестового окружения создавать группу VDC нет необходимости, так как это создаёт дополнительный слой абстракции в Cloud Director

### Промышленное окружение
- Для промышленного окружения, если в тенанте существуют разные VDC, создание groupvdc позволит снизить сетевые издержки (за счёт общей сети)

---

## 4. Выходные параметры

### Параметры groupvdc
Набор параметров, указанных пользователем при создании

---

## 5. Дополнительная информация
- Группа vDC используется для растягивания SDN между несколькими виртуальными датацентрами. Управление всеми сетевыми элементами внутри группы выполняется Cloud Director.
- Удалить первичный vDC (тот, что был указан при операции **create**) невозможно. Для его удаления необходимо удалить всю группу и создать новую.
- Перед добавлением любого vDC в группу он должен быть предварительно развернут через сервис `Виртуальный датацентр (vDC)`.
- Сети создаются не в этой услуге, а в услуге `Сетевой шлюз периметра (Edge)`. В ней необходимо будет выбрать тип `groupvdc`","operations":[{"svcOperationId":251,"operation":"reconcile","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VdcGroup/job/reconcile/view/tags/job/0.0.2/buildWithParameters","descr":"Необходимо для актуализации состояния группы датацентров.
Операция приводит инстанс услуги к текущей целевой модели, принятой в Личном Кабинете: обновляет информацию из Cloud Director, производит миграцию состояния услуги до последней версии схемы","man":null},{"svcOperationId":191,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VdcGroup/job/create/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"**VDC Группа** нужна для объединения всех VDC в организации в одну логическую группу.
Это позволит, к примеру, создать **общую сеть** для всех VDC в организации

- Для создания группы VDC необходимо указать **инстанс** услуги VDC (`Виртуальный датацентр`)
- **Важный момент** - удалить эту VDC из группы нельзя. Если такая потребность появится, необходимо будет **ПОЛНОСТЬЮ** удалить группу VDC и уже потом создать новую"},{"svcOperationId":193,"operation":"remove_vdc","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VdcGroup/job/remove_vdc/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":192,"operation":"add_vdc","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VdcGroup/job/add_vdc/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":"**Не нужно** выбирать UUID VDC, который уже был добавлен в группу"},{"svcOperationId":195,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/vc/job/VdcGroup/job/delete/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null}]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/32.json b/artifacts/api-meta/test/services/32.json new file mode 100644 index 0000000..961c7e0 --- /dev/null +++ b/artifacts/api-meta/test/services/32.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svc":{"svcId":32,"svc":"vc_vm_postgresql_std","svcShort":"vmpostgre","code":null,"version":null,"orchestratorName":"VmPostgre","createUrl":null,"isProductionReady":false,"resourceRealmTypeId":2,"iconSrc":null,"descr":"Сервис настройки PostgreSQL для виртуальной машины.
Требует наличия ВМ","man":"Сервис настройки PostgreSQL для виртуальной машины.
Требует наличия ВМ","operations":[]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/50.json b/artifacts/api-meta/test/services/50.json new file mode 100644 index 0000000..7c6b747 --- /dev/null +++ b/artifacts/api-meta/test/services/50.json @@ -0,0 +1 @@ +{"queryDurationMs":49,"svc":{"svcId":50,"svc":"Nextcloud","svcShort":"nextcloud","code":null,"version":"0.0.9","orchestratorName":"Nextcloud","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Nextcloud/job/create/view/tags/job/0.0.9/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":"https://www.svgrepo.com/download/349455/nextcloud.svg","descr":"Платформа совместной работы","man":"Ресурсная платформа: k8s. Автоматизация: helm chart","operations":[{"svcOperationId":16,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Nextcloud/job/create/view/tags/job/0.0.9/buildWithParameters","descr":"Ресурсная платформа берётся из PSQL UUID","man":"DEV-Ветка сборки Nextcloud"},{"svcOperationId":67,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Nextcloud/job/modify/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null},{"svcOperationId":66,"operation":"restart","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Nextcloud/job/restart/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null},{"svcOperationId":17,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Nextcloud/job/delete/view/tags/job/0.0.9/buildWithParameters","descr":"DEV-Ветка удаления Nextcloud","man":"DEV-Ветка удаления Nextcloud"},{"svcOperationId":129,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Nextcloud/job/resume/view/tags/job/0.0.9/buildWithParameters","descr":null,"man":null},{"svcOperationId":128,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Nextcloud/job/suspend/view/tags/job/0.0.9/buildWithParameters","descr":"Не работает из за проблемы с отсуствием механизма зануления реплики (в вейлюсах нельзя задать количство реплик)","man":null}]},"runDurationMs":50} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/81.json b/artifacts/api-meta/test/services/81.json new file mode 100644 index 0000000..9fd32f3 --- /dev/null +++ b/artifacts/api-meta/test/services/81.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svc":{"svcId":81,"svc":"Apache Superset","svcShort":"superset","code":null,"version":"0.0.8","orchestratorName":"Superset","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Superset/job/create/view/tags/job/0.0.8/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Сервер отчетов","man":"Apache Superset как сервис.
Ресурсная платформа: k8s.
Автоматизация: k8s operator.
Авторизация: 2FA keycloak (для доменного логина @mgmt.nubes.ru)","operations":[{"svcOperationId":12,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Superset/job/create/view/tags/job/0.0.8/buildWithParameters","descr":"DEV-Ветка сборки Superset","man":"DEV-Ветка сборки Superset"},{"svcOperationId":13,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Superset/job/delete/view/tags/job/0.0.8/buildWithParameters","descr":"DEV-Ветка удаления Superset","man":"DEV-Ветка удаления Superset"}]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/82.json b/artifacts/api-meta/test/services/82.json new file mode 100644 index 0000000..38dd295 --- /dev/null +++ b/artifacts/api-meta/test/services/82.json @@ -0,0 +1 @@ +{"queryDurationMs":47,"svc":{"svcId":82,"svc":"Container Registry","svcShort":"harbor","code":null,"version":"0.0.9","orchestratorName":"Registry","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Registry/job/create/view/tags/job/0.0.9/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":"https://goharbor.io/img/logos/harbor-icon-color.png","descr":"Реестр для хранения образов контейнеров","man":"Расширенный реестр для управления Docker-образами с enterprise-функциями безопасности, репликации и контроля доступа.
Container Registry позволяет хранить, развертывать и управлять Docker-образами контейнеров в инфраструктуре NGcloud.
Сервис можно использовать в процессе разработки контейнеров. Например, вы можете настроить систему автоматизации на работу с реестром в Container Registry в рамках процесса непрерывной интеграции. Контейнеры идеально подходят для запуска небольших, независимых и легко изменяемых сервисов.
Чтобы начать работу, создайте реестр и загрузите в него Docker-образ
Авторизация: keycloak","operations":[{"svcOperationId":14,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Registry/job/create/view/tags/job/0.0.9/buildWithParameters","descr":"DEV-Ветка сборки Harbor","man":"DEV-Ветка сборки Harbor"},{"svcOperationId":15,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Registry/job/delete/view/tags/job/0.0.9/buildWithParameters","descr":"DEV-Ветка удаления Harbor","man":"DEV-Ветка удаления Harbor"}]},"runDurationMs":47} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/88.json b/artifacts/api-meta/test/services/88.json new file mode 100644 index 0000000..9ed4d6a --- /dev/null +++ b/artifacts/api-meta/test/services/88.json @@ -0,0 +1 @@ +{"queryDurationMs":47,"svc":{"svcId":88,"svc":"k8sZitiController","svcShort":"k8sZitiController","code":null,"version":"0.0.1","orchestratorName":"ZitiController","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ZitiController/job/create/view/tags/job/0.0.1/buildWithParameters","isProductionReady":false,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Контроллер управления Client to service & service to service Zero trust network
","man":null,"operations":[{"svcOperationId":105,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ZitiController/job/delete/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":99,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/ZitiController/job/create/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null}]},"runDurationMs":47} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/89.json b/artifacts/api-meta/test/services/89.json new file mode 100644 index 0000000..ae6c383 --- /dev/null +++ b/artifacts/api-meta/test/services/89.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svc":{"svcId":89,"svc":"Web-сервер с фреймворком Flask","svcShort":"flask","code":"paas.flsk.0","version":"0.0.4","orchestratorName":"Flask","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Flask/job/create/view/tags/job/0.0.4/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":null,"man":"# Инструкция по развертыванию Web-сервер с фреймворком Flask через платформу

## 1. Общая информация

Сервис **Web-сервер с фреймворком Flask** предназначен для развертывания веб-приложений на базе Flask.

### Доступные операции

create — включить сервис, развернуть веб-приложение с указанными параметрами.
delete — удалить сервис, только после suspend.
modify — изменить настройки сервиса и переразвернуть.
suspend — выключить веб-приложение, остановить обслуживание.
resume — включить веб-приложение после suspend.

---

## 2. Параметры развертывания

Параметры входных данных операции **create**:

### Имя домена
Описание: доменное имя для доступа к веб-приложению. Если указан FQDN, происходит проверка DNS на валидность А-записи. А-запись должна указывать на балансировщик ресурсной платформы. Если указано имя в рамках одного октета, оно будет добавлено в публичную DNS-зону.
Пример значения: строка, допустимые FQDN или имя в одном октете. Пример: example.com или myapp.

### Платформа для развертывания
Описание: кластер Kubernetes, в котором будет развернуто приложение.
Пример значения: идентификатор кластера Kubernetes.

### Квота ядра пода
Описание: количество CPU, выделяемое на под, в Milicores.
Пример значения: целое число, например 500 для 0.5 ядра.

### Квота памяти пода
Описание: количество памяти, выделяемое на под, в Megabytes.
Пример значения: целое число, например 512 для 512 MB.

### Кол-во реплик пода
Описание: количество инстансов пода для масштабирования.
Пример значения: целое число, шт, например 2.

### URL Проекта (gitpath)
Описание: полный HTTPS путь до проекта в Git-репозитории.
Пример значения: URL в формате https://github.com/myuser/myproject.git. Доступ к репозиторию должен быть публичным.

### URL HealthCheck
Описание: путь для проверки здоровья приложения внутри пода.
Пример значения: строка, путь, например /api/v1/health.

### Переменные окружения пода
Описание: структура данных, которая будет передана как переменные окружения в под.
Пример значения: ключ-значение, например {"ENV": "production"}.

---

## 3. Рекомендованные характеристики

### Тестовое окружение
- Квота ядра пода: 300m (0.3 ядра)
- Квота памяти пода: 256 MB
- Кол-во реплик пода: 1

### Промышленное окружение
- Квота ядра пода: от 1000m (1 ядро) в зависимости от нагрузки
- Квота памяти пода: от 1024 MB (1 GB) с учетом потребностей приложения
- Кол-во реплик пода: от 2 для обеспечения отказоустойчивости

---

## 4. Выходные параметры
Операция create не возвращает явных выходных параметров. Успешное выполнение операции приводит к развертыванию сервиса, доступного по указанному домену.

---

## 5. Дополнительная информация
- В корне проекта должен находиться файл requirements.txt со списком зависимостей Python.
- Исходный код веб-приложения должен располагаться в директории site.
- Запуск веб-сервера осуществляется командой python app.py.
- Используется версия Python: python:3.12-slim.
- Git-репозиторий должен быть публично доступен для платформы.
- Операция delete возможна только после suspend.
- Операция modify приводит к переразвертыванию с новыми параметрами.","operations":[{"svcOperationId":89,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Flask/job/delete/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":"Удаление возможно только после остановки сервиса через операцию `suspend`
После выполнения операции необходимо выждать определенное кол-во времени"},{"svcOperationId":88,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Flask/job/create/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":125,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Flask/job/suspend/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":146,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Flask/job/modify/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null},{"svcOperationId":145,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Flask/job/resume/view/tags/job/0.0.4/buildWithParameters","descr":null,"man":null}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/90.json b/artifacts/api-meta/test/services/90.json new file mode 100644 index 0000000..5e3146f --- /dev/null +++ b/artifacts/api-meta/test/services/90.json @@ -0,0 +1 @@ +{"queryDurationMs":50,"svc":{"svcId":90,"svc":"PostgreSQL","svcShort":"postgres","code":"paas.pg.0","version":"1.0.0","orchestratorName":"Pgsql","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/create/view/tags/job/1.0.0/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":"https://upload.wikimedia.org/wikipedia/commons/2/29/Postgresql_elephant.svg","descr":"Управляемая база данных PostgreSQL","man":"# Инструкция по развертыванию PostgreSQL через платформу

---
## 1. Общая информация

PostgreSQL — это надёжная объектно-реляционная СУБД с открытым исходным кодом, поддерживающая расширенный набор функций, транзакции и хранение сложных типов данных. Развёртывание полностью автоматизировано платформой на базе Zalando Postgres Operator с использованием Kubernetes.

## Доступные операции

- **create** — Создание кластера
- **delete** — Удаление кластера
- **modify** — Модификация кластера
- **suspend** — Остановка кластера
- **resume** — Запуск кластера
- **restart** — Перезапуск кластера
- **recovery** — Восстановление из резервной копии

- **create_user** — Создание пользователя
- **delete_user** — Удаление пользователя

- **create_database** — Создание базы данных
- **delete_database** — Удаление базы данных


---
## 2. Параметры развертывания кластера

Ниже перечислены параметры, которые необходимо указать при создании ресурса PostgreSQL:

* **Платформа для развертывания:**
Платформа для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.

* **Количество узлов в сети:**
Количество инстансов (реплик) в кластере PostgreSQL. Пример: `2` (master + slave).

* **Квота (megabyte) памяти пода:**
Квота памяти пода в мегабайтах. Пример: `2048`

* **Квота (millicore) ядра пода:**
Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `1000`

* **Размер (gigabyte) диска для базы данных:**
Размер диска для хранения данных в гигабайтах. Пример: `20`

* **Выделяет внешний IP для доступа к master:**
Флаг, определяющий, нужно ли выделять внешний IP для доступа к master. Пример: `true` или `false`

* **Имя ipSpace для публикации внешнего IP master:**
Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`

* **Выделяет внешний IP для доступа к slave:**
Флаг для выделения внешнего IP для slave (реплики чтения). Работает, если slave присутствует в кластере.

* **Имя ipSpace для публикации внешнего IP slave:**
Если включен параметр для slave, то поле необходимо заполнить.

* **UUID экземпляра услуги S3:**
UUID экземпляра S3 для хранения резервных копий.

* **Версия PostgreSQL:**
Версия PostgreSQL для развертывания. Пример: `16`

* **Расписание бэкапов (ext_BACKUP_SCHEDULE):**
Необязательный. Cron-выражение для времени запуска бэкапов. По умолчанию: `0 0 * * *` (ежедневно в полночь).

* **Количество сохраняемых бэкапов (ext_BACKUP_NUM_TO_RETAIN):**
Необязательный. Количество сохраняемых бэкапов. По умолчанию: `7`

* **PgPooler (master / slave):**
Флаги включения PgBouncer для подключений на запись и чтение. При включении создаётся отдельный под.

* **Разрешить подключение без SSL (allowNoSSL):**
По умолчанию подключение с sslmode=require. При `true` разрешается подключение без SSL.

* **Автоскейлинг PV (autoScale):**
Включает автоскейлинг тома. Требует настройки autoScalePercentage, autoScaleTechWindow, autoScaleQuotaGb.

* **Дополнительные параметры PostgreSQL (jsonParameters):**
JSON с переменными конфигурации PostgreSQL. Документация: https://www.postgresql.org/docs/current/runtime-config.html

---
## 3. Выходные параметры

После успешного развертывания ресурса PostgreSQL платформа возвращает ряд параметров.

#### externalConnect

Внешние эндпоинты для подключения к кластеру:
- **master** — для операций записи (host: `write.${namespace}`, port: 5432)
- **slave** — для операций чтения (host: `read.${namespace}`, port: 5432)

Пример ответа платформы:

```json
{
"slave": {
"ip": "",
"fqdn": "",
"uuid": "",
"isExternal": false
},
"master": {
"ip": "<ip>",
"fqdn": "write.<namespace>.<cluster-domain>",
"uuid": "<uuid>",
"isExternal": false
}
}
```

Поля: `ip` — внешний IP; `fqdn` — полное имя хоста; `uuid` — идентификатор; `isExternal` — признак внешнего доступа.

#### internalConnect

Внутренние эндпоинты (FQDN) для подключения из других сервисов внутри той же сети Kubernetes.

Пример ответа платформы:

```json
{
"slave": "",
"master": {
"slave": "",
"master": {
"slave": "",
"master": "postgresqlk8s-master.<namespace>.svc.cluster.local"
}
}
}
```

Для подключения используйте значение `master.master.master` (host для записи) или соответствующее значение slave (host для чтения).

Для подключения используется порт **5432**.

---
## 4. Управление пользователями

### create_user — Создание пользователя

* **Имя пользователя (username):**
Имя создаваемого пользователя. Используется для подключения к базе и настройки прав.
Пример: `myapp_user`

* **Роль (role):**
Тип роли пользователя. Допустимые значения:
- `app_user` — базовые права для DML-операций (SELECT, INSERT, UPDATE, DELETE)
- `ddl_user` — расширенные права: createdb, createrole (управление базами и ролями)

Защищённые имена, которые нельзя использовать: `admin`, `postgres`, `standby`.

### delete_user — Удаление пользователя

* **Имя пользователя (username):**
Имя удаляемого пользователя. Пример: `myapp_user`

Пользователя нельзя удалить, если он является владельцем базы данных. Сначала удалите или передайте владение базами данных другому пользователю.

---
## 5. Управление базами данных

### create_database — Создание базы данных

* **Имя базы данных (dbName):**
Название создаваемой базы данных. Пример: `myapp_db`

* **Владелец базы данных (dbOwner):**
Имя пользователя-владельца базы. Должен существовать в кластере (создан через create_user). Пример: `myapp_user`

### delete_database — Удаление базы данных

* **Имя базы данных (dbName):**
Название удаляемой базы данных. Пример: `myapp_db`
","operations":[{"svcOperationId":54,"operation":"restart","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/restart/view/tags/job/1.0.0/buildWithParameters","descr":"ВНИМАНИЕ - Редеплой предполагает УДАЛЕНИЕ подов.
Может быть полная поломка. Крайне осторожно запускать при работе.
Нет возможности нормально мигрировать на другую платформу средствами Redeploy, так как есть привязка к S3.
Поэтому если нужно смигрировать на другой кластер Kubernetes - использовать необходимо Restore","man":"ВНИМАНИЕ - Рестарт предполагает УДАЛЕНИЕ подов.
Может быть полная поломка. Крайне осторожно запускать при работе"},{"svcOperationId":114,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/resume/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null},{"svcOperationId":20,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/delete/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null},{"svcOperationId":48,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/modify/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null},{"svcOperationId":47,"operation":"recovery","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/recovery/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null},{"svcOperationId":19,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/create/view/tags/job/1.0.0/buildWithParameters","descr":"описание","man":"руководство"},{"svcOperationId":115,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/suspend/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null},{"svcOperationId":241,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/create_user/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null},{"svcOperationId":244,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/delete_user/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null},{"svcOperationId":245,"operation":"create_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/create_database/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null},{"svcOperationId":246,"operation":"delete_database","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgsql/job/delete_database/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null}]},"runDurationMs":51} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/91.json b/artifacts/api-meta/test/services/91.json new file mode 100644 index 0000000..b70ebfb --- /dev/null +++ b/artifacts/api-meta/test/services/91.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svc":{"svcId":91,"svc":"Redis","svcShort":"redis","code":null,"version":"0.0.10","orchestratorName":"Redis","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Redis/job/create/view/tags/job/0.0.10/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":"https://www.svgrepo.com/download/303460/redis-logo.svg","descr":"Управляемая база данных Redis","man":"Redis кластер. Под кеши.
Ресурсная платформа: k8s.
Автоматизация: k8s operator
port 6379","operations":[{"svcOperationId":22,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Redis/job/delete/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null},{"svcOperationId":21,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Redis/job/create/view/tags/job/0.0.10/buildWithParameters","descr":null,"man":null}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/92.json b/artifacts/api-meta/test/services/92.json new file mode 100644 index 0000000..94bb327 --- /dev/null +++ b/artifacts/api-meta/test/services/92.json @@ -0,0 +1 @@ +{"queryDurationMs":51,"svc":{"svcId":92,"svc":"MongoDB","svcShort":"mongodb","code":"paas.mngo.0","version":"0.0.2","orchestratorName":"MongoDB","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/MongoDB/job/create/view/tags/job/0.0.2/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Управляемая база данных MongoDB","man":"# Инструкция по развертыванию MongoDB через платформу

## 1. Общая информация

MongoDB — документоориентированная распределённая база данных, обеспечивающая высокую доступность, горизонтальное масштабирование и гибкую модель хранения.

### Доступные операции с кластером

* **create** — создание базы
* **delete** — удаление базы данных
* **suspend** — остановка базы данных
* **resume** — запуск базы данных
* **modify** — изменение базы данных

### Доступные операции с пользователями

* **create_user** — создание пользователя
* **modify_user** — модификация пользователя
* **delete_user** — удаление пользователя

---

## 2. Параметры развертывания базы данных

Эти параметры необходимо указать при создании базы данных.

### Платформа для развертывания

Среда, в которой будет развернут кластер. Выбирается из предложенного списка.

### Количество узлов

Оптимально выбирать нечётное количество узлов в кластере MongoDB, так как это обеспечивает корректный процесс выбора ведущего узла и сохраняет работоспособность базы данных даже при отказе одной из нод.

### Квота памяти пода (MB)

Объём памяти для одного пода в мегабайтах.
Пример: `2048`

### Квота CPU пода (mCPU)

CPU-квота для пода в миликорах (1000 mCPU = 1 vCPU).
Пример: `1000`

### Размер диска для базы данных (GB)

Объём диска для хранения данных в гигабайтах.
Пример: `20`

### Выделение внешнего IP для доступа к master

Флаг, определяющий необходимость выделения внешнего IP.
Допустимые значения: `true` или `false`

### Имя ipSpace для публикации внешнего IP

Указывается только если включено выделение внешнего IP.
Пример: `internet-no-antiddos-v1`

---

## 3. Параметры модификации базы данных

Все параметры, которые вы указываете при модификации, являются необязательными — система автоматически подставит ранее сохранённые значения, и при необходимости вы можете изменить их на нужные.

### Количество узлов

Оптимально выбирать нечётное количество узлов в кластере MongoDB, так как это обеспечивает корректный процесс выбора ведущего узла и сохраняет работоспособность базы данных даже при отказе одной из нод.

### Квота памяти пода (MB)

Объём памяти для одного пода в мегабайтах.
Пример: `2048`

### Квота CPU пода (mCPU)

CPU-квота для пода в миликорах (1000 mCPU = 1 vCPU).
Пример: `1000`

### Размер диска для базы данных (GB)

Объём диска для хранения данных указывается в гигабайтах. Его можно увеличить при необходимости, однако уменьшить уже выделенный размер невозможно.
Пример: `20`

### Выделение внешнего IP для доступа к master

Флаг, определяющий необходимость выделения внешнего IP.
Допустимые значения: `true` или `false`

### Имя ipSpace для публикации внешнего IP

Указывается только если включено выделение внешнего IP.
Пример: `internet-no-antiddos-v1`

---

## 3. Параметры создания пользователя

### Имя пользователя

Указывается имя пользователя (любой регистр).
Пример: `readApp`

### Имя базы данных

Название базы, в которой будет создан пользователь.
Если база отсутствует, она будет создана автоматически.
Пример: `Apps_9392`

### Имя роли

* **read** — доступ только на чтение
* **readWrite** — чтение и изменение данных
* **dbOwner** — полный контроль над базой данных

---

## 4. Параметры модификации пользователя

### Имя пользователя

Необходимо выбрать существующего пользователя.
Если список пуст, требуется предварительно создать пользователя.

### Имя базы данных

База данных, к которой относится пользователь.
Если база отсутствует, она будет создана автоматически.
Пример: `Apps_9392`

### Имя роли

* **read**
* **readWrite**
* **dbOwner**

---

## 5. Параметры удаления пользователя

### Имя пользователя

Выберите пользователя из списка для удаления.

---

## 6. Выходные параметры

После успешного развертывания базы данных платформа возвращает ключевые параметры.

### internalConnect

Внутренний эндпоинт для подключения к кластеру из сервисов, работающих в той же сети.
Используется для внутренних интеграций и системных сервисов.

### externalConnect

Внешний FQDN для подключения к кластеру извне.
Порт подключения — **27017**.

---

## 7. Пример подключения

Перед подключением необходимо установить **mongosh**.

Команда подключения к базе данных:

```
mongosh "mongodb://<username>:<password>@<endpoint_db>:27017/<dbName>"
```

Где:

* `<username>` — имя пользователя
* `<password>` — пароль
* `<endpoint_db>` — internalConnect или externalConnect
* `<dbName>` — имя базы данных

## 8. Дополнительная информация

Сейчас соединение с базой работает без шифрования, и доступ к кластеру осуществляется только по логину и паролю.","operations":[{"svcOperationId":190,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/MongoDB/job/delete/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":194,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/MongoDB/job/suspend/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":37,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/MongoDB/job/create/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":200,"operation":"modify_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/MongoDB/job/modify_user/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":199,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/MongoDB/job/delete_user/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":196,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/MongoDB/job/resume/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":198,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/MongoDB/job/create_user/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null},{"svcOperationId":201,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/MongoDB/job/modify/view/tags/job/0.0.2/buildWithParameters","descr":null,"man":null}]},"runDurationMs":52} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/93.json b/artifacts/api-meta/test/services/93.json new file mode 100644 index 0000000..b37bb1c --- /dev/null +++ b/artifacts/api-meta/test/services/93.json @@ -0,0 +1 @@ +{"queryDurationMs":45,"svc":{"svcId":93,"svc":"RabbitMQ","svcShort":"rabbitmq","code":null,"version":"1.0.0","orchestratorName":"Rabbitmq","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Rabbitmq/job/create/view/tags/job/1.0.0/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":"https://www.svgrepo.com/download/354250/rabbitmq-icon.svg","descr":"Сервер очередей","man":"# Инструкция по развертыванию RabbitMQ через платформу

---
## 1. Общая информация
RabbitMQ — это брокер сообщений с открытым исходным кодом, который обеспечивает надёжную доставку сообщений между приложениями.
Позволяет надёжно передавать сообщения между сервисами и системами, интегрироваться с внешними решениями и использовать как внутренние, так и защищённые TLS-подключения. Развёртывание полностью автоматизировано платформой.

## Доступные операции
- **create** — Создание кластера
- **modify** — Изменение параметров кластера
- **delete** — Удаление кластера
- **suspend** — Остановка кластера
- **resume** — Запуск кластера


---
## 2. Параметры развертывания кластера
Ниже перечислены параметры, которые необходимо указать при создании ресурса RabbitMQ:

* **Платформа для развертывания:**
Платформа для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.

* **Количество узлов в сети:**
Количество реплик в кластере RabbitMQ. При значении больше 1 создаётся кластер с репликацией для обеспечения высокой доступности.
Пример: `1` (single node) или `3` (кластер с репликацией)

* **Квота (megabyte) памяти пода:**
Квота памяти пода в мегабайтах. Пример: `2048`

* **Квота (millicore) ядра пода:**
Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `1000`

* **Размер (gigabyte) диска для базы данных:**
Размер диска для хранения данных RabbitMQ в гигабайтах. Пример: `50`

* **Выделяет внешний IP для доступа к master:**
Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-узлу. При включении создаётся Service типа LoadBalancer и настраивается VIP на порту 5672.
Пример: `true` или `false`

* **Имя ipSpace для публикации внешнего IP master:**
Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`


---
## 3. Модификация кластера
Операция **modify** позволяет изменить параметры существующего кластера RabbitMQ.

**Изменяемые параметры:**
* **Квота (megabyte) памяти пода** — можно увеличить или уменьшить
* **Квота (millicore) ядра пода** — можно увеличить или уменьшить
* **Размер (gigabyte) диска для базы данных** — можно только увеличить (уменьшение не поддерживается)
* **Количество узлов в сети** — можно только увеличить (уменьшение не поддерживается)
* **Выделяет внешний IP для доступа к master** — можно включить или выключить
* **Имя ipSpace для публикации внешнего IP master** — можно изменить при включенном внешнем IP

**Ограничения:**
* Уменьшение размера диска не поддерживается
* Уменьшение количества реплик не поддерживается

---
## 4. Выходные параметры
После успешного развертывания ресурса RabbitMQ платформа возвращает ряд параметров в разделе "Поля состояния (сгенерированные значения)":

**clusterDomain**
Домен кластера Kubernetes, в котором развернут RabbitMQ.
Пример: `cluster.local`

**inernalConnect**
Внутренние эндпоинты для подключения к кластеру RabbitMQ из других сервисов, развернутых внутри той же сети.
Содержит:
* **master** — FQDN для подключения к кластеру. Пример: `rabbitmqk8s.{namespace}.svc.{clusterDomain}`

**externalConnect**
Внешние эндпоинты для подключения к кластеру RabbitMQ извне.
Содержит объекты с полями:
* **admin** — доступ к веб-интерфейсу управления:
* `fqdn` — полное доменное имя для веб-интерфейса. Пример: `admin.{namespace}.{domain}`
* `ip` — IP-адрес
* **master** — доступ к AMQP протоколу (если включен внешний IP):
* `fqdn` — полное доменное имя для AMQP. Пример: `write.{namespace}.{domain}`
* `ip` — IP-адрес

**monitoring**
Информация о дашбордах мониторинга:
* **allDashboards** — URL для доступа ко всем дашбордам Grafana

Для подключения используются следующие порты:

* **5672** — AMQP протокол (внутренний и внешний доступ, если включен внешний IP)
* **15672** — веб-интерфейс управления (доступен через Ingress по HTTPS)

**Учётные данные**
Данные для подключения к RabbitMQ доступны в разделе "Учётные данные":
* **adminUser** — имя пользователя администратора
* **adminPass** — пароль администратора


---
## 5. Примеры подключения через консоль (rabbitmqadmin)

### Работа с очередями через rabbitmqadmin

Для работы с RabbitMQ через консоль используется утилита `rabbitmqadmin`. Установите её или используйте образ с предустановленной утилитой.

Задайте переменные окружения с учётными данными:

```bash
export RABBITMQ_USERNAME=<adminUser>
export RABBITMQ_PASSWORD=<adminPass>
export RABBIT_HOST=<host>
```

Где:
* `<adminUser>` и `<adminPass>` — учётные данные из раздела "Учётные данные"
* `<host>` — адрес для подключения:
* Для внешнего подключения: `externalConnect.admin.fqdn` или `externalConnect.master.fqdn`

**Создание очереди:**

```bash
rabbitmqadmin \\
-H "$RABBIT_HOST" -P 15672 \\
-u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \\
declare queue name=healthcheck durable=false
```

**Листинг очередей:**

```bash
rabbitmqadmin \\
-H "$RABBIT_HOST" -P 15672 \\
-u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \\
list queues
```

**Отправка сообщения:**

```bash
rabbitmqadmin \\
-H "$RABBIT_HOST" -P 15672 \\
-u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \\
publish exchange=amq.default routing_key=healthcheck payload="ping-$(date +%s)"
```

**Чтение сообщения:**

```bash
rabbitmqadmin \\
-H "$RABBIT_HOST" -P 15672 \\
-u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \\
get queue=healthcheck ackmode=ack_requeue_false
```

---
## 6. Дополнительная информация
Для подключения к кластеру RabbitMQ используйте полученные эндпоинты из раздела "Поля состояния (сгенерированные значения)" и учётные данные из раздела "Учётные данные".

Веб-интерфейс управления доступен по адресу, указанному в параметре `externalConnect.admin.fqdn` через HTTPS.

Для внутреннего подключения используйте адрес из `inernalConnect.master` на порту 5672.

---","operations":[{"svcOperationId":39,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Rabbitmq/job/delete/view/tags/job/1.0.0/buildWithParameters","descr":"Для удаления нужно подождать 15 мин или зайти в состояние suspend и поправить время на 15 мин назад","man":null},{"svcOperationId":38,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Rabbitmq/job/create/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null},{"svcOperationId":106,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Rabbitmq/job/modify/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null},{"svcOperationId":117,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Rabbitmq/job/resume/view/tags/job/1.0.0/buildWithParameters","descr":null,"man":null},{"svcOperationId":116,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Rabbitmq/job/suspend/view/tags/job/1.0.0/buildWithParameters","descr":"Остановка сервиса путем применения манифеста с нолевой репликой","man":"Пока не работает из за того что RabbitmqCluster нельзя занулить"}]},"runDurationMs":45} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/94.json b/artifacts/api-meta/test/services/94.json new file mode 100644 index 0000000..26ca4e2 --- /dev/null +++ b/artifacts/api-meta/test/services/94.json @@ -0,0 +1 @@ +{"queryDurationMs":56,"svc":{"svcId":94,"svc":"Lucee","svcShort":"lucee","code":null,"version":"0.0.15","orchestratorName":"Lucee","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Lucee/job/create/view/tags/job/0.0.15/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Cервер приложений","man":null,"operations":[{"svcOperationId":55,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Lucee/job/modify/view/tags/job/0.0.15/buildWithParameters","descr":"Если CFS оставить пустым, то при запуске джобы берётся параметр из instanceData","man":"Если CFS оставить пустым, то при запуске джобы берётся параметр из instanceData"},{"svcOperationId":53,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Lucee/job/redeploy/view/tags/job/0.0.15/buildWithParameters","descr":null,"man":null},{"svcOperationId":50,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Lucee/job/delete/view/tags/job/0.0.15/buildWithParameters","descr":null,"man":null},{"svcOperationId":49,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Lucee/job/create/view/tags/job/0.0.15/buildWithParameters","descr":null,"man":null},{"svcOperationId":96,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Lucee/job/suspend/view/tags/job/0.0.15/buildWithParameters","descr":null,"man":null},{"svcOperationId":95,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Lucee/job/resume/view/tags/job/0.0.15/buildWithParameters","descr":null,"man":null},{"svcOperationId":163,"operation":"restart","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Lucee/job/restart/view/tags/job/0.0.15/buildWithParameters","descr":null,"man":null}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/95.json b/artifacts/api-meta/test/services/95.json new file mode 100644 index 0000000..eaaf808 --- /dev/null +++ b/artifacts/api-meta/test/services/95.json @@ -0,0 +1 @@ +{"queryDurationMs":44,"svc":{"svcId":95,"svc":"NodeJS","svcShort":"nodejs","code":null,"version":"0.0.11","orchestratorName":"Node","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Node/job/create/view/tags/job/0.0.11/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":"https://icon.icepanel.io/Technology/svg/Node.js.svg","descr":"Cервер приложений","man":"Развертывает контейнер в k8s кластере с node:16, который можно использовать для запуска своих приложений.
Приложение должно быть доступно по ссылки в git репозитории, которая является входным параметром.","operations":[{"svcOperationId":58,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Node/job/create/view/tags/job/0.0.11/buildWithParameters","descr":null,"man":null},{"svcOperationId":61,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Node/job/delete/view/tags/job/0.0.11/buildWithParameters","descr":null,"man":null},{"svcOperationId":59,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Node/job/modify/view/tags/job/0.0.11/buildWithParameters","descr":null,"man":null},{"svcOperationId":60,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Node/job/redeploy/view/tags/job/0.0.11/buildWithParameters","descr":null,"man":null},{"svcOperationId":120,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Node/job/suspend/view/tags/job/0.0.11/buildWithParameters","descr":null,"man":null},{"svcOperationId":121,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Node/job/resume/view/tags/job/0.0.11/buildWithParameters","descr":null,"man":null}]},"runDurationMs":45} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/96.json b/artifacts/api-meta/test/services/96.json new file mode 100644 index 0000000..2e5d6cb --- /dev/null +++ b/artifacts/api-meta/test/services/96.json @@ -0,0 +1 @@ +{"queryDurationMs":43,"svc":{"svcId":96,"svc":"pgAdmin","svcShort":"pgadmin","code":null,"version":"0.0.7","orchestratorName":"Pgadmin","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgadmin/job/create/view/tags/job/0.0.7/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":"Административный интерфейс для PostgreSQL","man":"Инструмент с графическим интерфейсом для управления базами данных PostgreSQL","operations":[{"svcOperationId":63,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgadmin/job/delete/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":62,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgadmin/job/create/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":65,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgadmin/job/redeploy/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":64,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgadmin/job/modify/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":122,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgadmin/job/suspend/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":123,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Pgadmin/job/resume/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null}]},"runDurationMs":43} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/97.json b/artifacts/api-meta/test/services/97.json new file mode 100644 index 0000000..dd7774f --- /dev/null +++ b/artifacts/api-meta/test/services/97.json @@ -0,0 +1 @@ +{"queryDurationMs":46,"svc":{"svcId":97,"svc":"NodeRed","svcShort":"nodered","code":null,"version":"0.0.1","orchestratorName":"NodeRed","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/NodeRed/job/create/view/tags/job/0.0.1/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":"https://nodered.org/about/resources/media/node-red-icon.svg","descr":"Low-code платформа для IoT","man":null,"operations":[{"svcOperationId":72,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/NodeRed/job/create/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null},{"svcOperationId":73,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/NodeRed/job/delete/view/tags/job/0.0.1/buildWithParameters","descr":null,"man":null}]},"runDurationMs":46} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/98.json b/artifacts/api-meta/test/services/98.json new file mode 100644 index 0000000..02320dd --- /dev/null +++ b/artifacts/api-meta/test/services/98.json @@ -0,0 +1 @@ +{"queryDurationMs":69,"svc":{"svcId":98,"svc":"Простой HTTP контейнер","svcShort":"http","code":null,"version":"0.0.8","orchestratorName":"SimpleHttpContainer","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SimpleHttpContainer/job/create/view/tags/job/0.0.8/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":null,"man":null,"operations":[{"svcOperationId":81,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SimpleHttpContainer/job/modify/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null},{"svcOperationId":78,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SimpleHttpContainer/job/delete/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null},{"svcOperationId":79,"operation":"redeploy","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SimpleHttpContainer/job/redeploy/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null},{"svcOperationId":77,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SimpleHttpContainer/job/create/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null},{"svcOperationId":130,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SimpleHttpContainer/job/resume/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null},{"svcOperationId":131,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/SimpleHttpContainer/job/suspend/view/tags/job/0.0.8/buildWithParameters","descr":null,"man":null}]},"runDurationMs":70} \ No newline at end of file diff --git a/artifacts/api-meta/test/services/99.json b/artifacts/api-meta/test/services/99.json new file mode 100644 index 0000000..375417e --- /dev/null +++ b/artifacts/api-meta/test/services/99.json @@ -0,0 +1 @@ +{"queryDurationMs":55,"svc":{"svcId":99,"svc":"Gitea","svcShort":"gitea","code":null,"version":"0.0.7","orchestratorName":"Gitea","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Gitea/job/create/view/tags/job/0.0.7/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":"https://www.svgrepo.com/download/349372/gitea.svg","descr":"Сервис контроля версий","man":"Развертывает сервис контроля версий Gitea
Зависит от сервиса postgresql который должен быть развернут заранее.","operations":[{"svcOperationId":82,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Gitea/job/create/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":83,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Gitea/job/delete/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":91,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Gitea/job/modify/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":126,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Gitea/job/suspend/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null},{"svcOperationId":127,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicestest/job/k8s/job/Gitea/job/resume/view/tags/job/0.0.7/buildWithParameters","descr":null,"man":null}]},"runDurationMs":56} \ No newline at end of file diff --git a/artifacts/output_inventory/errors.json b/artifacts/output_inventory/errors.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/artifacts/output_inventory/errors.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/artifacts/output_inventory/running_suspended_instances.json b/artifacts/output_inventory/running_suspended_instances.json new file mode 100644 index 0000000..dad0823 --- /dev/null +++ b/artifacts/output_inventory/running_suspended_instances.json @@ -0,0 +1,6348 @@ +[ + { + "instanceConfigDtCreated": "2026-02-19T09:58:45.994+0300", + "instanceConfigDtUpdated": "2026-02-19T09:58:45.994+0300", + "instanceUid": "d939206f-37b8-4e8b-8094-8e71b2eb057f", + "displayName": "A-record (testakhq.akhqk8s)", + "serviceId": 111, + "specificationItemId": 1734, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 16, + "updaterLogin": "sofiyamishchuk@gmail.com", + "updaterShortname": " С.", + "lastOperation": "create", + "lastOperationUid": "e4a7d00c-2783-4ab9-89d1-0731e932f6c0", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-19T09:59:31.907+0300", + "operationDtFinish": "2026-02-19T09:59:53.053+0300", + "duration": 21.1, + "uptime": 939846.018397, + "dtDeploy": "2026-02-19T09:59:53.053+0300", + "instanceStateUid": "b41cac73-8df2-4be0-a430-e70801b20144", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-19T09:59:52.055+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-20T13:16:39.554+0300", + "instanceConfigDtUpdated": "2026-02-20T13:16:39.554+0300", + "instanceUid": "4b02996d-f75e-41af-bc1e-d4d53e6127f8", + "displayName": "A-record (akhq2002.akhqk8s)", + "serviceId": 111, + "specificationItemId": 1741, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 16, + "updaterLogin": "sofiyamishchuk@gmail.com", + "updaterShortname": " С.", + "lastOperation": "create", + "lastOperationUid": "f8586713-f547-4b1c-892e-1bd9fee07f68", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-20T13:16:52.582+0300", + "operationDtFinish": "2026-02-20T13:17:08.601+0300", + "duration": 16, + "uptime": 841610.470397, + "dtDeploy": "2026-02-20T13:17:08.601+0300", + "instanceStateUid": "cdf0a29a-de2b-4bd7-93f2-a84e1c22d841", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-20T13:17:07.852+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-02-21T14:56:40.150+0300", + "instanceConfigDtUpdated": "2025-02-21T14:56:40.150+0300", + "instanceUid": "697f70a4-8c06-4c3f-88dd-daa0195c9506", + "displayName": "dummy21", + "serviceId": 1, + "specificationItemId": 59, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 16, + "updaterLogin": "sofiyamishchuk@gmail.com", + "updaterShortname": " С.", + "lastOperation": "suspend", + "lastOperationUid": "a21b3fdb-715b-47da-a7c5-6d298fe3af65", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-06T19:13:24.804+0300", + "operationDtFinish": "2026-02-06T19:13:26.173+0300", + "duration": 1.4, + "uptime": 0, + "dtDeploy": "2026-02-06T19:13:26.173+0300", + "instanceStateUid": "b661dc14-ef73-4fd8-89a1-c30154f5e50e", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2025-02-21T14:56:48.242+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-02-18T11:15:08.380+0300", + "instanceConfigDtUpdated": "2025-02-18T11:15:08.380+0300", + "instanceUid": "83914058-d3c3-4f23-bb36-777a824601ec", + "displayName": "pgAdmin - консоль для PostgreSQL (pgadmin_k8s)-3", + "serviceId": 96, + "specificationItemId": 49, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "pgAdmin", + "code": null, + "resourceRealmTypeId": 3, + "updaterId": 16, + "updaterLogin": "sofiyamishchuk@gmail.com", + "updaterShortname": " С.", + "lastOperation": "create", + "lastOperationUid": "6ebfca16-b596-4fa4-9ef0-981baa3c80e9", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-01T14:21:14.777+0300", + "operationDtFinish": "2026-02-01T14:25:54.263+0300", + "duration": 279.5, + "uptime": 2479084.808397, + "dtDeploy": "2026-02-01T14:25:54.263+0300", + "instanceStateUid": "8ed2c26f-07a2-466a-9aee-b85a2bc728bf", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/83914058-d3c3-4f23-bb36-777a824601ec?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-01T14:25:52.429+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-06T19:12:31.667+0300", + "instanceConfigDtUpdated": "2026-02-06T19:12:31.667+0300", + "instanceUid": "6855bebf-42c1-4aa1-b91d-02a677b1f3a1", + "displayName": "A-record (pgadmin-0602.pgadmink8s)", + "serviceId": 111, + "specificationItemId": 1634, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 16, + "updaterLogin": "sofiyamishchuk@gmail.com", + "updaterShortname": " С.", + "lastOperation": "create", + "lastOperationUid": "e6fdab71-8ed1-4547-af6b-dbe26845d6b8", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-06T19:12:40.541+0300", + "operationDtFinish": "2026-02-06T19:12:57.462+0300", + "duration": 16.9, + "uptime": 2029861.609397, + "dtDeploy": "2026-02-06T19:12:57.462+0300", + "instanceStateUid": "5e95f51d-7771-4000-803b-c09f12f6ab50", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-06T19:12:56.692+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-17T13:25:41.646+0300", + "instanceConfigDtUpdated": "2026-02-17T13:25:41.646+0300", + "instanceUid": "b567b375-8038-459d-abd9-5acd1e2f21ff", + "displayName": "A-record (nodejs-4.nodejsk8s)", + "serviceId": 111, + "specificationItemId": 1724, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 16, + "updaterLogin": "sofiyamishchuk@gmail.com", + "updaterShortname": " С.", + "lastOperation": "create", + "lastOperationUid": "884dada8-642d-420e-9e28-c7bf5a750b35", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-17T13:26:31.627+0300", + "operationDtFinish": "2026-02-17T13:26:56.280+0300", + "duration": 24.7, + "uptime": 1100222.791397, + "dtDeploy": "2026-02-17T13:26:56.280+0300", + "instanceStateUid": "cf00a037-6f3c-4204-915d-8d8b1d1360c0", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-17T13:26:55.255+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-19T14:11:43.003+0300", + "instanceConfigDtUpdated": "2026-02-19T14:11:43.003+0300", + "instanceUid": "ac79afac-57ad-4007-9f9a-7473122801be", + "displayName": "A-record (testkafka2.akhqk8s)", + "serviceId": 111, + "specificationItemId": 1738, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 16, + "updaterLogin": "sofiyamishchuk@gmail.com", + "updaterShortname": " С.", + "lastOperation": "create", + "lastOperationUid": "a78dbc18-c998-49a4-a19a-64de4eae84e0", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-19T14:12:43.244+0300", + "operationDtFinish": "2026-02-19T14:13:10.692+0300", + "duration": 27.4, + "uptime": 924648.379397, + "dtDeploy": "2026-02-19T14:13:10.692+0300", + "instanceStateUid": "9b10b456-2928-4f8f-9e83-382f88d021e6", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-19T14:13:09.290+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-19T14:10:25.868+0300", + "instanceConfigDtUpdated": "2026-02-19T14:10:25.868+0300", + "instanceUid": "d2bcdf69-7231-47d0-bd45-dc3477e675a1", + "displayName": "Akhq-3", + "serviceId": 119, + "specificationItemId": 1737, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Akhq", + "code": null, + "resourceRealmTypeId": 3, + "updaterId": 16, + "updaterLogin": "sofiyamishchuk@gmail.com", + "updaterShortname": " С.", + "lastOperation": "suspend", + "lastOperationUid": "5ade60c3-f831-47d3-a6e4-08ac0b02df14", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-20T13:15:01.357+0300", + "operationDtFinish": "2026-02-20T13:15:23.803+0300", + "duration": 22.4, + "uptime": 0, + "dtDeploy": "2026-02-20T13:15:23.803+0300", + "instanceStateUid": "17f47d37-bb24-42d9-a398-4f44f0a847f4", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-20T13:15:22.923+0300", + "explainedStatus": "suspended", + "version": 3 + }, + { + "instanceConfigDtCreated": "2026-02-19T01:42:32.884+0300", + "instanceConfigDtUpdated": "2026-02-19T01:42:32.884+0300", + "instanceUid": "18257650-5edd-40e9-bcd9-98c85add3a19", + "displayName": "kafka-2", + "serviceId": 116, + "specificationItemId": 1730, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "ApacheKafka", + "code": null, + "resourceRealmTypeId": 3, + "updaterId": 16, + "updaterLogin": "sofiyamishchuk@gmail.com", + "updaterShortname": " С.", + "lastOperation": "suspend", + "lastOperationUid": "a070f7cf-fd41-450b-b7c0-df6a1124e3ac", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-26T14:16:35.903+0300", + "operationDtFinish": "2026-02-26T14:17:04.543+0300", + "duration": 28.6, + "uptime": 0, + "dtDeploy": "2026-02-26T14:17:04.543+0300", + "instanceStateUid": "5d61d31b-5111-4239-b71a-e753ebc7e0ff", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/18257650-5edd-40e9-bcd9-98c85add3a19?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-26T14:17:03.426+0300", + "explainedStatus": "suspended", + "version": 14 + }, + { + "instanceConfigDtCreated": "2025-10-10T17:43:22.481+0300", + "instanceConfigDtUpdated": "2025-10-10T17:43:22.481+0300", + "instanceUid": "f990c3b7-b3a9-4927-bfa5-fe495aa3fd36", + "displayName": "dummy-3", + "serviceId": 1, + "specificationItemId": 738, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 16, + "updaterLogin": "sofiyamishchuk@gmail.com", + "updaterShortname": " С.", + "lastOperation": "create", + "lastOperationUid": "716ea6ae-cc82-46a0-8e0f-7d130dc3cd98", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2025-10-10T17:43:30.265+0300", + "operationDtFinish": "2025-10-10T17:43:35.498+0300", + "duration": 5.2, + "uptime": 12316823.573397, + "dtDeploy": "2025-10-10T17:43:35.498+0300", + "instanceStateUid": "734adc25-8a5c-4f15-9f3c-7f3a5dc627e0", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2025-10-10T17:43:35.283+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-02-21T15:06:12.071+0300", + "instanceConfigDtUpdated": "2025-02-21T15:06:12.071+0300", + "instanceUid": "74304b53-2fff-4b72-a2a5-3619a0675e4a", + "displayName": "faileddummy2102", + "serviceId": 1, + "specificationItemId": 62, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 16, + "updaterLogin": "sofiyamishchuk@gmail.com", + "updaterShortname": " С.", + "lastOperation": "delete", + "lastOperationUid": "03a1e945-6354-4fbb-bd78-627413de6a28", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2025-03-03T10:52:47.145+0300", + "operationDtFinish": "2025-03-03T10:52:49.771+0300", + "duration": 2.6, + "uptime": 0, + "dtDeploy": "2025-03-03T10:52:49.771+0300", + "instanceStateUid": "6718ef9e-e497-471e-8464-98ab5c595846", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2025-02-21T15:06:20.194+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-02-13T10:41:44.046+0300", + "instanceConfigDtUpdated": "2025-02-13T10:41:44.046+0300", + "instanceUid": "2e71dcfa-73b2-4db8-b819-e38d8a3cb4a6", + "displayName": "dnsZones-2", + "serviceId": 110, + "specificationItemId": 45, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS зона", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 16, + "updaterLogin": "sofiyamishchuk@gmail.com", + "updaterShortname": " С.", + "lastOperation": "delete", + "lastOperationUid": "2f534c67-7134-4af8-a643-fe51fca96a5d", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": true, + "operationDtStart": null, + "operationDtFinish": null, + "duration": null, + "uptime": 0, + "dtDeploy": null, + "instanceStateUid": "9ae8c0c8-c954-4b45-b6f9-31af46ec0878", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2025-02-13T10:42:01.192+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-03-13T21:26:57.916+0300", + "instanceConfigDtUpdated": "2025-03-13T21:26:57.916+0300", + "instanceUid": "31994863-e06c-40fe-808a-9bd28dc4d4c2", + "displayName": "dummy1303", + "serviceId": 1, + "specificationItemId": 127, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 16, + "updaterLogin": "sofiyamishchuk@gmail.com", + "updaterShortname": " С.", + "lastOperation": "create", + "lastOperationUid": "3208fd8f-c400-41cb-893b-2f3702df72a2", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2025-03-13T21:27:04.046+0300", + "operationDtFinish": "2025-03-13T21:27:07.394+0300", + "duration": 3.3, + "uptime": 30533811.677397, + "dtDeploy": "2025-03-13T21:27:07.394+0300", + "instanceStateUid": "4440bf71-c274-48df-817d-e28c2e7b16d6", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2025-03-13T21:27:07.307+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-02-18T11:26:35.663+0300", + "instanceConfigDtUpdated": "2025-02-18T11:26:35.663+0300", + "instanceUid": "b3b42a1d-5b06-45c6-8730-1e1840e1814f", + "displayName": "dummy-1", + "serviceId": 1, + "specificationItemId": 52, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 16, + "updaterLogin": "sofiyamishchuk@gmail.com", + "updaterShortname": " С.", + "lastOperation": "suspend", + "lastOperationUid": "3bdc0a3a-eb40-4ad7-8dbb-616edb16a31b", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-18T14:34:08.342+0300", + "operationDtFinish": "2026-02-18T14:34:10.595+0300", + "duration": 2.3, + "uptime": 0, + "dtDeploy": "2026-02-18T14:34:10.595+0300", + "instanceStateUid": "9a39cfb2-4b36-402d-b5d4-8574482d68de", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2025-02-18T11:26:42.931+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-04T13:31:20.253+0300", + "instanceConfigDtUpdated": "2026-02-04T13:31:20.253+0300", + "instanceUid": "80ee2387-807b-4934-ae82-8b85d6a028b3", + "displayName": "S3-Bucket (technicals3backup-48dbc644-9e45-418f-bd09-b65350159057)", + "serviceId": 13, + "specificationItemId": 1619, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "S3 бакет", + "code": null, + "resourceRealmTypeId": 1, + "updaterId": 16, + "updaterLogin": "sofiyamishchuk@gmail.com", + "updaterShortname": " С.", + "lastOperation": "delete", + "lastOperationUid": "9aa8e89c-7ba4-4d85-ba53-1f8150e5c7d5", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-12T14:47:50.550+0300", + "operationDtFinish": "2026-02-12T14:48:11.662+0300", + "duration": 21.1, + "uptime": 0, + "dtDeploy": "2026-02-12T14:48:11.662+0300", + "instanceStateUid": "b165ae9b-19d1-47fb-978e-44be0ab9da75", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-04T13:31:49.125+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-04T13:30:47.221+0300", + "instanceConfigDtUpdated": "2026-02-04T13:30:47.221+0300", + "instanceUid": "48dbc644-9e45-418f-bd09-b65350159057", + "displayName": "postgres-5", + "serviceId": 90, + "specificationItemId": 1618, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "PostgreSQL", + "code": "paas.pg.0", + "resourceRealmTypeId": 3, + "updaterId": 16, + "updaterLogin": "sofiyamishchuk@gmail.com", + "updaterShortname": " С.", + "lastOperation": "suspend", + "lastOperationUid": "9137e470-1126-4950-be6d-734019185daf", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-06T19:08:01.838+0300", + "operationDtFinish": "2026-02-06T19:08:18.971+0300", + "duration": 17.1, + "uptime": 0, + "dtDeploy": "2026-02-06T19:08:18.971+0300", + "instanceStateUid": "7b386738-28b6-4fb5-8085-d9f0f2c2fe1c", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/48dbc644-9e45-418f-bd09-b65350159057?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-06T19:08:17.833+0300", + "explainedStatus": "suspended", + "version": 4 + }, + { + "instanceConfigDtCreated": "2026-02-06T19:12:08.304+0300", + "instanceConfigDtUpdated": "2026-02-06T19:12:08.304+0300", + "instanceUid": "f5a46223-7d08-4006-85f9-a86bcce20bb7", + "displayName": "pgadmin-2114", + "serviceId": 96, + "specificationItemId": 1633, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "pgAdmin", + "code": null, + "resourceRealmTypeId": 3, + "updaterId": 16, + "updaterLogin": "sofiyamishchuk@gmail.com", + "updaterShortname": " С.", + "lastOperation": "suspend", + "lastOperationUid": "bb6177ad-8b90-40a3-ab0b-5ef66a03d8ff", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-06T19:34:21.576+0300", + "operationDtFinish": "2026-02-06T19:34:34.825+0300", + "duration": 13.2, + "uptime": 0, + "dtDeploy": "2026-02-06T19:34:34.825+0300", + "instanceStateUid": "c92184c5-a410-43bf-9675-c86990f343ff", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/f5a46223-7d08-4006-85f9-a86bcce20bb7?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-06T19:34:33.916+0300", + "explainedStatus": "suspended", + "version": 2 + }, + { + "instanceConfigDtCreated": "2026-02-19T09:57:00.523+0300", + "instanceConfigDtUpdated": "2026-02-19T09:57:00.523+0300", + "instanceUid": "15b0578b-a262-4047-a943-dd44ecf1e554", + "displayName": "Akhq-2", + "serviceId": 119, + "specificationItemId": 1733, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Akhq", + "code": null, + "resourceRealmTypeId": 3, + "updaterId": 16, + "updaterLogin": "sofiyamishchuk@gmail.com", + "updaterShortname": " С.", + "lastOperation": "delete", + "lastOperationUid": "e1241984-e9e6-4614-a4e3-8d4eff007326", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-19T14:07:54.797+0300", + "operationDtFinish": "2026-02-19T14:08:00.484+0300", + "duration": 5.7, + "uptime": 0, + "dtDeploy": "2026-02-19T14:08:00.484+0300", + "instanceStateUid": "b9d759b3-e2dd-4fc0-a3f1-399da18f2aee", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-19T14:07:00.062+0300", + "explainedStatus": "suspended", + "version": 6 + }, + { + "instanceConfigDtCreated": "2026-02-20T13:15:28.507+0300", + "instanceConfigDtUpdated": "2026-02-20T13:15:28.507+0300", + "instanceUid": "305707e5-2e64-4bfa-ad41-3141e3449791", + "displayName": "Akhq-4", + "serviceId": 119, + "specificationItemId": 1740, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Akhq", + "code": null, + "resourceRealmTypeId": 3, + "updaterId": 16, + "updaterLogin": "sofiyamishchuk@gmail.com", + "updaterShortname": " С.", + "lastOperation": "suspend", + "lastOperationUid": "b3de6fdc-c3b3-4983-9d23-79e005cf70f2", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-20T14:41:24.300+0300", + "operationDtFinish": "2026-02-20T14:41:47.022+0300", + "duration": 22.7, + "uptime": 0, + "dtDeploy": "2026-02-20T14:41:47.022+0300", + "instanceStateUid": "5aae55b0-5901-4642-bea8-e36df093a75d", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-20T14:41:46.302+0300", + "explainedStatus": "suspended", + "version": 3 + }, + { + "instanceConfigDtCreated": "2026-02-17T11:38:25.529+0300", + "instanceConfigDtUpdated": "2026-02-17T11:38:25.529+0300", + "instanceUid": "dd660aed-aff1-4100-bd06-59b870a26055", + "displayName": "nodejs-1702", + "serviceId": 95, + "specificationItemId": 1720, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "NodeJS", + "code": null, + "resourceRealmTypeId": 3, + "updaterId": 16, + "updaterLogin": "sofiyamishchuk@gmail.com", + "updaterShortname": " С.", + "lastOperation": "suspend", + "lastOperationUid": "2d524b52-07d0-42b8-91ce-83561e618662", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-26T17:11:47.419+0300", + "operationDtFinish": "2026-02-26T17:12:00.036+0300", + "duration": 12.6, + "uptime": 0, + "dtDeploy": "2026-02-26T17:12:00.036+0300", + "instanceStateUid": "709fb514-5460-41c2-bba7-f9693830bf02", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/dd660aed-aff1-4100-bd06-59b870a26055?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-26T17:11:59.243+0300", + "explainedStatus": "suspended", + "version": 4 + }, + { + "instanceConfigDtCreated": "2025-10-16T09:29:28.277+0300", + "instanceConfigDtUpdated": "2025-10-16T09:29:28.277+0300", + "instanceUid": "78a050b5-2687-4fdb-ad4c-0f94517f6569", + "displayName": "s3Bucket for (f1632ed1-3d95-4ef8-9d41-ff380555c4a5)", + "serviceId": 13, + "specificationItemId": 770, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "S3 бакет", + "code": null, + "resourceRealmTypeId": 1, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "aad984fa-82c8-4bd7-bc51-960cc7e5132e", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2025-10-16T09:29:36.377+0300", + "operationDtFinish": "2025-10-16T09:29:53.285+0300", + "duration": 16.9, + "uptime": 11828045.786397, + "dtDeploy": "2025-10-16T09:29:53.285+0300", + "instanceStateUid": "4a3f45b3-743f-4b85-9c8f-c038f69e43c8", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2025-10-16T09:29:52.525+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-10-16T09:13:37.058+0300", + "instanceConfigDtUpdated": "2025-10-16T09:13:37.058+0300", + "instanceUid": "1289f0ac-7a39-4d3e-884e-a7778b996977", + "displayName": "s3Bucket for (8a528abf-7f5a-4b8e-945c-1807b3dcd888)", + "serviceId": 13, + "specificationItemId": 765, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "S3 бакет", + "code": null, + "resourceRealmTypeId": 1, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "a74215e0-4e7d-4015-af10-936d77b7feb7", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2025-10-16T09:23:39.428+0300", + "operationDtFinish": "2025-10-16T09:23:46.618+0300", + "duration": 7.2, + "uptime": 0, + "dtDeploy": "2025-10-16T09:23:46.618+0300", + "instanceStateUid": "2af402e9-c707-418a-80a4-ff8125ad5939", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2025-10-16T09:14:50.289+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-21T20:32:48.421+0300", + "instanceConfigDtUpdated": "2026-01-21T20:32:48.421+0300", + "instanceUid": "04b5944f-9d34-4d3a-bfd7-2909d9ee36d5", + "displayName": "terraboy", + "serviceId": 1, + "specificationItemId": 1156, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "14ffb65d-2515-48e7-ac85-10473bcad3f5", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-21T20:57:07.893+0300", + "operationDtFinish": "2026-01-21T20:57:09.709+0300", + "duration": 1.8, + "uptime": 0, + "dtDeploy": "2026-01-21T20:57:09.709+0300", + "instanceStateUid": "62b9733a-dc37-485b-9cee-f8e0a467fad6", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-21T20:33:06.478+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-10-15T09:56:50.381+0300", + "instanceConfigDtUpdated": "2025-10-15T09:56:50.381+0300", + "instanceUid": "a8100363-9467-44b2-be74-b20a2248a187", + "displayName": "s3bucket-4", + "serviceId": 13, + "specificationItemId": 743, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "S3 бакет", + "code": null, + "resourceRealmTypeId": 1, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "5b75bcab-722b-4c0f-af58-a45e0150d0f7", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-29T13:12:59.398+0300", + "operationDtFinish": "2026-01-29T13:13:05.448+0300", + "duration": 6.1, + "uptime": 0, + "dtDeploy": "2026-01-29T13:13:05.448+0300", + "instanceStateUid": "21f94277-bc9a-4d81-8fef-77cd1b15cc2a", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2025-10-15T09:57:06.962+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-10-15T06:36:09.835+0300", + "instanceConfigDtUpdated": "2025-10-15T06:36:09.835+0300", + "instanceUid": "5e71c188-e989-42d7-89ff-cc623d04f066", + "displayName": "postgres-3", + "serviceId": 90, + "specificationItemId": 741, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "PostgreSQL", + "code": "paas.pg.0", + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "suspend", + "lastOperationUid": "591f06f0-c1b8-447b-ba0d-27274911a35c", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-01T13:34:32.200+0300", + "operationDtFinish": "2026-02-01T13:34:37.070+0300", + "duration": 4.9, + "uptime": 0, + "dtDeploy": "2026-02-01T13:34:37.070+0300", + "instanceStateUid": "3a6dfc6e-25e6-40ef-a30e-0534819e6e80", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/5e71c188-e989-42d7-89ff-cc623d04f066?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2025-10-15T06:40:50.060+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-10-15T06:39:22.851+0300", + "instanceConfigDtUpdated": "2025-10-15T06:39:22.851+0300", + "instanceUid": "7f77570f-ce8b-484d-b464-9e19ec268ef6", + "displayName": "s3Bucket for (5e71c188-e989-42d7-89ff-cc623d04f066)", + "serviceId": 13, + "specificationItemId": 742, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "S3 бакет", + "code": null, + "resourceRealmTypeId": 1, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "c61baa9b-767e-4032-92d3-ba929fc79c9e", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2025-10-15T06:39:34.297+0300", + "operationDtFinish": "2025-10-15T06:39:46.042+0300", + "duration": 11.7, + "uptime": 11924653.029397, + "dtDeploy": "2025-10-15T06:39:46.042+0300", + "instanceStateUid": "a18cb268-3e52-47f7-8a16-b98c9958297b", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2025-10-15T06:39:45.624+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-10-16T01:07:06.981+0300", + "instanceConfigDtUpdated": "2025-10-16T01:07:06.981+0300", + "instanceUid": "09c8a73a-64ef-4afb-86a4-3382f257a618", + "displayName": "vIp for (7fd32ee2-3e2e-4198-b2fe-bcf63b5f17ac)", + "serviceId": 25, + "specificationItemId": 760, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Публичные IP адреса", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "af83c3b8-de11-4aac-9076-7190e8d7910b", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2025-10-16T01:07:18.936+0300", + "operationDtFinish": "2025-10-16T01:07:46.150+0300", + "duration": 27.2, + "uptime": 11858172.921397, + "dtDeploy": "2025-10-16T01:07:46.150+0300", + "instanceStateUid": "3ec7badd-a29e-4b7e-b163-9a263bba4b05", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "ngcloud.ru", + "dtState": "2025-10-16T01:07:45.479+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-11-21T09:14:38.560+0300", + "instanceConfigDtUpdated": "2025-11-21T09:14:38.560+0300", + "instanceUid": "0a74f641-e520-4042-91df-a7231d3cdf1d", + "displayName": "nifi", + "serviceId": 111, + "specificationItemId": 945, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "8d1ed34c-521f-42f2-9543-4cc954e80d28", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2025-11-21T09:14:46.682+0300", + "operationDtFinish": "2025-11-21T09:15:03.786+0300", + "duration": 17.1, + "uptime": 8718535.285397, + "dtDeploy": "2025-11-21T09:15:03.786+0300", + "instanceStateUid": "677ce4e5-7359-4fe8-a5a4-7416fa583b1b", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2025-11-21T09:15:03.031+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-22T21:08:51.187+0300", + "instanceConfigDtUpdated": "2026-01-22T21:08:51.187+0300", + "instanceUid": "f6ff074d-f3af-4b44-93fd-73fc617bc1bb", + "displayName": "Bolvanka Full Test", + "serviceId": 1, + "specificationItemId": 1185, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "575414de-7855-4e1b-a0d4-bfbfdf29fc39", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-23T20:10:51.778+0300", + "operationDtFinish": "2026-01-23T20:10:53.655+0300", + "duration": 1.9, + "uptime": 0, + "dtDeploy": "2026-01-23T20:10:53.655+0300", + "instanceStateUid": "a75a6bd0-8938-45a1-817e-8ca7708fea55", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-22T21:09:10.338+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-23T22:33:10.470+0300", + "instanceConfigDtUpdated": "2026-01-23T22:33:10.470+0300", + "instanceUid": "99342c70-faf6-4377-b183-4d9c99d702ca", + "displayName": "test-vdc-20260123073308", + "serviceId": 21, + "specificationItemId": 1241, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Виртуальный датацентр (vDC)", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "9f5f4774-e2aa-469e-a71f-f92dd463937b", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-18T15:57:04.938+0300", + "operationDtFinish": "2026-02-18T15:57:10.545+0300", + "duration": 5.6, + "uptime": 0, + "dtDeploy": "2026-02-18T15:57:10.545+0300", + "instanceStateUid": "1ab178b2-4275-499c-bdbb-e7b18cf512c1", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-01-24T06:59:14.067+0300", + "explainedStatus": "suspended", + "version": 3 + }, + { + "instanceConfigDtCreated": "2026-01-23T22:36:25.573+0300", + "instanceConfigDtUpdated": "2026-01-23T22:36:25.573+0300", + "instanceUid": "6e2ae6d9-99a2-4a91-ace0-c3cff0c8ba9b", + "displayName": "test-vdc-20260123073624", + "serviceId": 21, + "specificationItemId": 1242, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Виртуальный датацентр (vDC)", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "01c15bb4-a3dc-4061-af36-c79fb6bd8542", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-17T07:26:15.350+0300", + "operationDtFinish": "2026-02-17T07:26:19.685+0300", + "duration": 4.3, + "uptime": 0, + "dtDeploy": "2026-02-17T07:26:19.685+0300", + "instanceStateUid": "4e470672-0dc2-400e-bf85-80f359a00eac", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-01-24T06:59:02.059+0300", + "explainedStatus": "suspended", + "version": 3 + }, + { + "instanceConfigDtCreated": "2025-10-16T00:27:45.111+0300", + "instanceConfigDtUpdated": "2025-10-16T00:27:45.111+0300", + "instanceUid": "9b9d79a3-9037-4c1a-8bfd-29529ef5a345", + "displayName": "wz01325-v1cl4-vsan-pvdc", + "serviceId": 21, + "specificationItemId": 758, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Виртуальный датацентр (vDC)", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "6eaafd34-bd55-438d-a315-6fdd0c2bd0a6", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2025-10-16T00:27:52.874+0300", + "operationDtFinish": "2025-10-16T00:28:36.478+0300", + "duration": 43.6, + "uptime": 11860523.599539, + "dtDeploy": "2025-10-16T00:28:36.478+0300", + "instanceStateUid": "f3f99ffb-495b-4f83-8e59-f7437df68cd8", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2025-10-16T00:28:36.000+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-10-20T15:19:51.384+0300", + "instanceConfigDtUpdated": "2025-10-20T15:19:51.384+0300", + "instanceUid": "9d7d37ff-d50f-4660-9247-55a6ce80551b", + "displayName": "theWheel", + "serviceId": 150, + "specificationItemId": 821, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Kubernetes кластер Штурвал", + "code": "paas.k8s.stw", + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "e0f9bb14-fc0b-4ee6-ac47-2f37d605bbe7", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-23T13:15:09.939+0300", + "operationDtFinish": "2026-01-23T13:15:21.842+0300", + "duration": 11.9, + "uptime": 0, + "dtDeploy": "2026-01-23T13:15:21.842+0300", + "instanceStateUid": "b744328d-ed5b-4479-a106-b96bd43f61e1", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "ngcloud.ru", + "dtState": "2025-10-20T15:33:36.000+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-24T06:18:16.394+0300", + "instanceConfigDtUpdated": "2026-01-24T06:18:16.394+0300", + "instanceUid": "450e4996-e61c-4a9b-93f4-a7ecb77fabf8", + "displayName": "test-vdc-fix-20260124031815", + "serviceId": 21, + "specificationItemId": 1248, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Виртуальный датацентр (vDC)", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "fc9b57cc-ef80-4f6e-a04e-5e8a16ea6e53", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-16T17:44:08.156+0300", + "operationDtFinish": "2026-02-16T17:44:12.350+0300", + "duration": 4.2, + "uptime": 0, + "dtDeploy": "2026-02-16T17:44:12.350+0300", + "instanceStateUid": "708155d4-41e8-435d-82b7-6b53327df7b6", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-01-24T21:48:13.827+0300", + "explainedStatus": "suspended", + "version": 2 + }, + { + "instanceConfigDtCreated": "2026-01-23T21:30:29.464+0300", + "instanceConfigDtUpdated": "2026-01-23T21:30:29.464+0300", + "instanceUid": "6ed05a80-ff39-4acf-b24d-29369e724bee", + "displayName": "terraform-vdc-20260123063028", + "serviceId": 21, + "specificationItemId": 1234, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Виртуальный датацентр (vDC)", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "1f49007c-5622-40b3-970d-4fd17ffb45c4", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-21T13:12:06.388+0300", + "operationDtFinish": "2026-02-21T13:12:10.794+0300", + "duration": 4.4, + "uptime": 0, + "dtDeploy": "2026-02-21T13:12:10.794+0300", + "instanceStateUid": "3576748b-27a7-421c-8d51-126a4744825c", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-01-24T21:48:39.658+0300", + "explainedStatus": "suspended", + "version": 4 + }, + { + "instanceConfigDtCreated": "2026-01-24T14:31:51.569+0300", + "instanceConfigDtUpdated": "2026-01-24T14:31:51.569+0300", + "instanceUid": "d77f6416-73b8-4e83-be4d-2a19a3e1e3bb", + "displayName": "test-vdc-mod-01241131", + "serviceId": 21, + "specificationItemId": 1270, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Виртуальный датацентр (vDC)", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "8167fdf2-8314-4de4-ba5a-233d336c5da8", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-21T13:10:28.163+0300", + "operationDtFinish": "2026-02-21T13:10:32.039+0300", + "duration": 3.9, + "uptime": 0, + "dtDeploy": "2026-02-21T13:10:32.039+0300", + "instanceStateUid": "159d49d7-9df1-4807-ac1b-3429b7765036", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-01-24T21:47:54.908+0300", + "explainedStatus": "suspended", + "version": 2 + }, + { + "instanceConfigDtCreated": "2026-01-25T09:54:11.011+0300", + "instanceConfigDtUpdated": "2026-01-25T09:54:11.011+0300", + "instanceUid": "ba79c918-603c-41c7-b75b-7b5fab98fc0d", + "displayName": "QuickTest-20260125065408", + "serviceId": 1, + "specificationItemId": 1288, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "d321f390-8f89-4edb-b9c0-c59dd0a5dd06", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-25T10:57:57.542+0300", + "operationDtFinish": "2026-01-25T10:57:59.185+0300", + "duration": 1.6, + "uptime": 0, + "dtDeploy": "2026-01-25T10:57:59.185+0300", + "instanceStateUid": "5d33d525-3564-4350-a17b-82c402025eda", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-25T09:54:27.896+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-25T10:16:37.978+0300", + "instanceConfigDtUpdated": "2026-01-25T10:16:37.978+0300", + "instanceUid": "31faf848-3592-4b69-bbac-cb36a2f35a8e", + "displayName": "SingleTest-20260125071635", + "serviceId": 1, + "specificationItemId": 1289, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "f95eb7f6-27a8-48c4-8646-5ff1ddfc1b18", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-25T10:17:50.997+0300", + "operationDtFinish": "2026-01-25T10:17:52.628+0300", + "duration": 1.6, + "uptime": 0, + "dtDeploy": "2026-01-25T10:17:52.628+0300", + "instanceStateUid": "aa00b745-29a3-48f1-a425-69b00711de6f", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-25T10:16:58.063+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-25T10:17:46.069+0300", + "instanceConfigDtUpdated": "2026-01-25T10:17:46.069+0300", + "instanceUid": "bed18a0b-aa07-4762-b583-0f32d65e0ea1", + "displayName": "SingleTest-20260125071748", + "serviceId": 1, + "specificationItemId": 1290, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "2ff0fe1c-9c63-4e7b-a497-fa3548d216bc", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-25T10:19:34.284+0300", + "operationDtFinish": "2026-01-25T10:19:36.089+0300", + "duration": 1.8, + "uptime": 0, + "dtDeploy": "2026-01-25T10:19:36.089+0300", + "instanceStateUid": "8268097d-a691-4681-b5cf-22472d13512e", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-25T10:18:05.542+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-25T13:29:43.304+0300", + "instanceConfigDtUpdated": "2026-01-25T13:29:43.304+0300", + "instanceUid": "d4bd7c9c-40f8-4a56-92fd-1c8f271f8521", + "displayName": "Bolvanka Full Test35", + "serviceId": 1, + "specificationItemId": 1299, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "1c69f388-df7f-4b5e-9d02-37fd582b0a83", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-25T13:29:51.652+0300", + "operationDtFinish": "2026-01-25T13:30:00.776+0300", + "duration": 9.1, + "uptime": 3087239.301539, + "dtDeploy": "2026-01-25T13:30:00.776+0300", + "instanceStateUid": "e622468f-5445-47d3-b9fd-cd19d13b12be", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-25T13:29:59.833+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-25T13:33:03.060+0300", + "instanceConfigDtUpdated": "2026-01-25T13:33:03.060+0300", + "instanceUid": "eb25c267-4106-4cc2-afb9-79dec1774ab0", + "displayName": "Bolvanka_Full_Test36", + "serviceId": 1, + "specificationItemId": 1300, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "modify", + "lastOperationUid": "20217ff1-746c-4891-9f5c-ce491b15011e", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-25T17:39:46.696+0300", + "operationDtFinish": "2026-01-25T17:39:56.936+0300", + "duration": 10.2, + "uptime": 3072243.141539, + "dtDeploy": "2026-01-25T17:39:56.936+0300", + "instanceStateUid": "528425cf-c891-4b8a-bd78-9c86bced991c", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-25T17:39:56.212+0300", + "explainedStatus": "running", + "version": 5 + }, + { + "instanceConfigDtCreated": "2026-01-27T13:29:49.353+0300", + "instanceConfigDtUpdated": "2026-01-27T13:29:49.353+0300", + "instanceUid": "476a5f44-00a5-40ae-9f58-8fa5546ac297", + "displayName": "Bolvanka Lifecycle Test", + "serviceId": 1, + "specificationItemId": 1316, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "0f23360d-40cf-4dea-a9a2-51dd9bf241ba", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-27T13:29:58.520+0300", + "operationDtFinish": "2026-01-27T13:30:07.849+0300", + "duration": 9.3, + "uptime": 2914432.228539, + "dtDeploy": "2026-01-27T13:30:07.849+0300", + "instanceStateUid": "5d280b69-442a-4dfa-a53a-454d01579d18", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-27T13:30:06.818+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-27T13:50:06.091+0300", + "instanceConfigDtUpdated": "2026-01-27T13:50:06.091+0300", + "instanceUid": "fc6ab87e-6ceb-4f8e-9c7b-503c422502c6", + "displayName": "Bolvanka Lifecycle Test 001", + "serviceId": 1, + "specificationItemId": 1318, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "e6187d9b-b6ed-4c43-9217-d432252ccc37", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-27T13:50:16.915+0300", + "operationDtFinish": "2026-01-27T13:50:27.760+0300", + "duration": 10.8, + "uptime": 2913212.317539, + "dtDeploy": "2026-01-27T13:50:27.760+0300", + "instanceStateUid": "313c14df-6dc3-452b-befd-94259b6b5659", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-27T13:50:26.924+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-27T13:54:00.309+0300", + "instanceConfigDtUpdated": "2026-01-27T13:54:00.309+0300", + "instanceUid": "966411ec-7b64-453e-9a54-72a6e4405902", + "displayName": "Bolvanka Lifecycle Test 002", + "serviceId": 1, + "specificationItemId": 1319, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "b3feb265-ff2c-4f9c-88f7-0ba9a8229cc2", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-27T13:54:11.197+0300", + "operationDtFinish": "2026-01-27T13:54:23.570+0300", + "duration": 12.4, + "uptime": 2912976.507539, + "dtDeploy": "2026-01-27T13:54:23.570+0300", + "instanceStateUid": "8444bfdc-3220-4ea1-baec-75d71e385299", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-27T13:54:22.586+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-27T14:38:54.936+0300", + "instanceConfigDtUpdated": "2026-01-27T14:38:54.936+0300", + "instanceUid": "3a021b21-c922-4daf-82dd-d937ec0bc0e7", + "displayName": "dummy-2311qwerty", + "serviceId": 1, + "specificationItemId": 1323, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "ce37f6eb-7ae6-4e79-bd36-a6bb34751a6a", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-27T14:39:03.745+0300", + "operationDtFinish": "2026-01-27T14:39:14.089+0300", + "duration": 10.3, + "uptime": 2910285.988539, + "dtDeploy": "2026-01-27T14:39:14.089+0300", + "instanceStateUid": "05995f1a-272a-412d-bc7c-5c1ee7cbfaf0", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-27T14:39:13.227+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-27T14:52:02.477+0300", + "instanceConfigDtUpdated": "2026-01-27T14:52:02.477+0300", + "instanceUid": "6782ace6-0139-4df6-9949-d692631aee70", + "displayName": "Bolvanka Lifecycle Test 005", + "serviceId": 1, + "specificationItemId": 1324, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "900f83f1-fa8c-4575-9054-abdec3e6c275", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-27T14:52:17.724+0300", + "operationDtFinish": "2026-01-27T14:52:28.837+0300", + "duration": 11.1, + "uptime": 2909491.240539, + "dtDeploy": "2026-01-27T14:52:28.837+0300", + "instanceStateUid": "3ea330a8-5b4f-460d-80d1-942647fd870b", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-27T14:52:28.073+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-27T15:08:46.488+0300", + "instanceConfigDtUpdated": "2026-01-27T15:08:46.488+0300", + "instanceUid": "c1f8f8a5-222f-4816-8adc-f0d94ffb0661", + "displayName": "Bolvanka Lifecycle Test 006", + "serviceId": 1, + "specificationItemId": 1327, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "ae7f0af7-2975-4d40-a41a-08ec23241f8f", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-27T15:08:55.689+0300", + "operationDtFinish": "2026-01-27T15:09:04.911+0300", + "duration": 9.2, + "uptime": 2908495.166539, + "dtDeploy": "2026-01-27T15:09:04.911+0300", + "instanceStateUid": "ca49ff1d-a93d-475c-9e50-ce670ab11e7b", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-27T15:09:04.061+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-24T16:41:01.978+0300", + "instanceConfigDtUpdated": "2026-01-24T16:41:01.978+0300", + "instanceUid": "e2b5c211-5b2b-43f0-ad28-cac3b87d4df7", + "displayName": "test-org-pg-1769262059", + "serviceId": 90, + "specificationItemId": 1277, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "PostgreSQL", + "code": "paas.pg.0", + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "restart", + "lastOperationUid": "a09e3c37-be57-4801-a1fa-55bdba944c29", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-27T22:47:17.895+0300", + "operationDtFinish": "2026-01-27T22:53:13.787+0300", + "duration": 355.9, + "uptime": 2880646.290539, + "dtDeploy": "2026-01-27T22:53:13.787+0300", + "instanceStateUid": "e70402c5-1777-4cf5-b04c-4c79fd84df3e", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/e2b5c211-5b2b-43f0-ad28-cac3b87d4df7?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-01-27T22:53:12.765+0300", + "explainedStatus": "running", + "version": 8 + }, + { + "instanceConfigDtCreated": "2025-10-16T12:44:03.373+0300", + "instanceConfigDtUpdated": "2025-10-16T12:44:03.373+0300", + "instanceUid": "1857e055-b606-4b90-926a-c5a8ef8ee70a", + "displayName": "pgadmin-naeel", + "serviceId": 96, + "specificationItemId": 775, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "pgAdmin", + "code": null, + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "resume", + "lastOperationUid": "bd97d7de-9503-4ce3-a08b-ac778a68f58a", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-28T07:35:48.100+0300", + "operationDtFinish": "2026-01-28T07:37:46.835+0300", + "duration": 118.7, + "uptime": 2849173.242539, + "dtDeploy": "2026-01-28T07:37:46.835+0300", + "instanceStateUid": "f6add286-8ba1-49d0-8e20-ca86aa002867", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/1857e055-b606-4b90-926a-c5a8ef8ee70a?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-01-28T07:37:45.695+0300", + "explainedStatus": "running", + "version": 5 + }, + { + "instanceConfigDtCreated": "2026-01-23T13:32:19.645+0300", + "instanceConfigDtUpdated": "2026-01-23T13:32:19.645+0300", + "instanceUid": "c7be7901-ce86-4432-9b1f-699ddefb1f99", + "displayName": "Bolvanka Full Test33", + "serviceId": 1, + "specificationItemId": 1189, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "suspend", + "lastOperationUid": "d5a3af4a-9107-42ee-8d61-eb934dfe91b3", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-28T11:02:48.308+0300", + "operationDtFinish": "2026-01-28T11:02:53.723+0300", + "duration": 5.4, + "uptime": 0, + "dtDeploy": "2026-01-28T11:02:53.723+0300", + "instanceStateUid": "e8a49268-077f-4d5c-87b5-fcf87d60fdc0", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-28T11:02:53.080+0300", + "explainedStatus": "suspended", + "version": 2 + }, + { + "instanceConfigDtCreated": "2026-01-28T17:30:23.230+0300", + "instanceConfigDtUpdated": "2026-01-28T17:30:23.230+0300", + "instanceUid": "df3f3b59-ef89-4efa-af26-f03e8f3158f4", + "displayName": "vc_vm_v3-3dff", + "serviceId": 28, + "specificationItemId": 1466, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Виртуальная машина", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "3c479db3-5525-4927-8667-d0b43e71f8ea", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-21T13:09:33.705+0300", + "operationDtFinish": "2026-02-21T13:10:03.013+0300", + "duration": 29.3, + "uptime": 0, + "dtDeploy": "2026-02-21T13:10:03.013+0300", + "instanceStateUid": "c5214eaa-bc41-4cb1-8dbb-a562178e3b39", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-01-29T14:33:52.945+0300", + "explainedStatus": "suspended", + "version": 8 + }, + { + "instanceConfigDtCreated": "2026-01-29T09:09:53.467+0300", + "instanceConfigDtUpdated": "2026-01-29T09:09:53.467+0300", + "instanceUid": "7899eda4-2663-4f49-86bd-b4bebc64055d", + "displayName": "vc_vm_v3-3tt", + "serviceId": 28, + "specificationItemId": 1474, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Виртуальная машина", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "suspend", + "lastOperationUid": "d69cd6eb-de45-4e85-8269-01cab933e0e5", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-25T10:15:37.127+0300", + "operationDtFinish": "2026-02-25T10:16:06.608+0300", + "duration": 29.5, + "uptime": 0, + "dtDeploy": "2026-02-25T10:16:06.608+0300", + "instanceStateUid": "2c8e021f-87d5-4cde-8134-33f210853d41", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-01-29T14:34:49.376+0300", + "explainedStatus": "suspended", + "version": 4 + }, + { + "instanceConfigDtCreated": "2026-01-29T10:41:48.350+0300", + "instanceConfigDtUpdated": "2026-01-29T10:41:48.350+0300", + "instanceUid": "b0100d99-b2a1-4c7d-8f04-429101597860", + "displayName": "test-vm-unique-04", + "serviceId": 28, + "specificationItemId": 1479, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Виртуальная машина", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "ca0924c2-a5b2-40f4-a06a-212b3de9c2bf", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-21T13:08:32.034+0300", + "operationDtFinish": "2026-02-21T13:09:01.045+0300", + "duration": 29, + "uptime": 0, + "dtDeploy": "2026-02-21T13:09:01.045+0300", + "instanceStateUid": "d422212c-fc21-447b-9225-272a50b02657", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-01-29T14:35:18.197+0300", + "explainedStatus": "suspended", + "version": 3 + }, + { + "instanceConfigDtCreated": "2026-01-29T09:17:56.779+0300", + "instanceConfigDtUpdated": "2026-01-29T09:17:56.779+0300", + "instanceUid": "e3ff4b3a-1236-4df7-ad88-c66142733bdb", + "displayName": "test-vm-minimal-20260129061756", + "serviceId": 28, + "specificationItemId": 1475, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Виртуальная машина", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "7cc7842c-bbd4-4f6b-a8ad-8d96c08b79b6", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-25T10:16:22.163+0300", + "operationDtFinish": "2026-02-25T10:16:51.526+0300", + "duration": 29.4, + "uptime": 0, + "dtDeploy": "2026-02-25T10:16:51.526+0300", + "instanceStateUid": "d3552c82-3524-42d9-950d-8e399b79163f", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-01-29T14:35:42.016+0300", + "explainedStatus": "suspended", + "version": 2 + }, + { + "instanceConfigDtCreated": "2025-10-15T21:08:18.490+0300", + "instanceConfigDtUpdated": "2025-10-15T21:08:18.490+0300", + "instanceUid": "e5375174-36ec-4512-bba9-b56f9eeba0bd", + "displayName": "Org WZ01325-saas", + "serviceId": 19, + "specificationItemId": 757, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Организация в Cloud Director", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "267f3cc0-5cc7-4698-a972-94978cbaf6fa", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2025-10-16T00:15:49.577+0300", + "operationDtFinish": "2025-10-16T00:16:41.765+0300", + "duration": 52.2, + "uptime": 11861238.312539, + "dtDeploy": "2025-10-16T00:16:41.765+0300", + "instanceStateUid": "2a1d17f2-dff8-468a-ae20-63329058077f", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "ngcloud.ru", + "dtState": "2025-10-16T00:16:39.000+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-29T19:02:49.247+0300", + "instanceConfigDtUpdated": "2026-01-29T19:02:49.247+0300", + "instanceUid": "b4683403-8858-4bda-b043-1fc6ddd28b7e", + "displayName": "vIp for (3c7dc106-0d04-4e7b-a91b-2f8243a41b78)", + "serviceId": 25, + "specificationItemId": 1498, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Публичные IP адреса", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "d8e6ba7d-97fe-49bd-a7db-7ad4f8c9761e", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-29T19:03:02.944+0300", + "operationDtFinish": "2026-01-29T19:03:37.463+0300", + "duration": 34.5, + "uptime": 2721622.614539, + "dtDeploy": "2026-01-29T19:03:37.463+0300", + "instanceStateUid": "29210025-bb95-4682-a98b-d925590a42e6", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "ngcloud.ru", + "dtState": "2026-01-29T19:03:36.603+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-29T19:03:43.241+0300", + "instanceConfigDtUpdated": "2026-01-29T19:03:43.241+0300", + "instanceUid": "468fc5ed-6725-4d60-8c8b-e7dc404d72e8", + "displayName": "A-record (vmnginx02.vappa.3c7dc106-0d04-4e7b-a91b-2f8243a41b78)", + "serviceId": 111, + "specificationItemId": 1499, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "a32eadac-1032-411b-a9e7-de748707d66a", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-29T19:03:54.167+0300", + "operationDtFinish": "2026-01-29T19:04:13.018+0300", + "duration": 18.9, + "uptime": 2721587.059539, + "dtDeploy": "2026-01-29T19:04:13.018+0300", + "instanceStateUid": "8a0f05e2-9253-425f-a65a-78b501f55a8a", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-01-29T19:04:12.228+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-29T13:05:59.786+0300", + "instanceConfigDtUpdated": "2026-01-29T13:05:59.786+0300", + "instanceUid": "51e4fc4f-74ef-4739-8888-1a08f1e4b1bf", + "displayName": "test-vm-stack-07", + "serviceId": 28, + "specificationItemId": 1482, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Виртуальная машина", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "94c1a0db-99cb-4144-9547-599c9f086f40", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-21T13:14:38.225+0300", + "operationDtFinish": "2026-02-21T13:15:07.592+0300", + "duration": 29.4, + "uptime": 0, + "dtDeploy": "2026-02-21T13:15:07.592+0300", + "instanceStateUid": "9205c2b7-b369-4352-b754-b57b558f31ba", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-01-30T08:33:42.359+0300", + "explainedStatus": "suspended", + "version": 2 + }, + { + "instanceConfigDtCreated": "2026-01-29T17:22:08.525+0300", + "instanceConfigDtUpdated": "2026-01-29T17:22:08.525+0300", + "instanceUid": "d5e146f4-be62-4f86-bbcc-e7e8f0567431", + "displayName": "vm-nginx-auto", + "serviceId": 28, + "specificationItemId": 1496, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Виртуальная машина", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "ed02e4e2-c2d7-401e-9130-c038ab4242cf", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-21T13:07:10.577+0300", + "operationDtFinish": "2026-02-21T13:07:39.837+0300", + "duration": 29.3, + "uptime": 0, + "dtDeploy": "2026-02-21T13:07:39.837+0300", + "instanceStateUid": "452115a4-1e2a-4baa-9d03-9fa3c66bc7a6", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-01-30T08:34:10.309+0300", + "explainedStatus": "suspended", + "version": 2 + }, + { + "instanceConfigDtCreated": "2026-01-29T18:58:35.583+0300", + "instanceConfigDtUpdated": "2026-01-29T18:58:35.583+0300", + "instanceUid": "3c7dc106-0d04-4e7b-a91b-2f8243a41b78", + "displayName": "vm-nginx-auto-02", + "serviceId": 28, + "specificationItemId": 1497, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Виртуальная машина", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "ec168814-d86f-43aa-bc0a-59fe74e8e08b", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-21T13:07:26.372+0300", + "operationDtFinish": "2026-02-21T13:07:55.804+0300", + "duration": 29.4, + "uptime": 0, + "dtDeploy": "2026-02-21T13:07:55.804+0300", + "instanceStateUid": "c490356a-83ae-4c5a-a1a8-f96a7d019775", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-01-30T12:34:51.009+0300", + "explainedStatus": "suspended", + "version": 2 + }, + { + "instanceConfigDtCreated": "2026-02-01T14:21:26.335+0300", + "instanceConfigDtUpdated": "2026-02-01T14:21:26.335+0300", + "instanceUid": "2ff6e3a8-d6a6-4f0a-a214-f005bb5c939e", + "displayName": "A-record (pgadmin-2114.pgadmink8s)", + "serviceId": 111, + "specificationItemId": 1549, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "86414ab6-d970-4425-8ebe-fe7e11bc3bce", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-01T14:22:06.233+0300", + "operationDtFinish": "2026-02-01T14:22:32.653+0300", + "duration": 26.4, + "uptime": 2479287.424539, + "dtDeploy": "2026-02-01T14:22:32.653+0300", + "instanceStateUid": "a4e7843a-1d18-49db-9a90-5b4ac1365f61", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-01T14:22:31.609+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-01T22:41:45.461+0300", + "instanceConfigDtUpdated": "2026-02-01T22:41:45.461+0300", + "instanceUid": "7bc42ed6-a674-4f0c-a0c9-4a6a63e38ce9", + "displayName": "tf-vm-20260201-02", + "serviceId": 28, + "specificationItemId": 1552, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Виртуальная машина", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "9a12dade-be69-462e-868b-3c9b8999dfb1", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-18T15:46:45.832+0300", + "operationDtFinish": "2026-02-18T15:47:15.037+0300", + "duration": 29.2, + "uptime": 0, + "dtDeploy": "2026-02-18T15:47:15.037+0300", + "instanceStateUid": "3d00f55b-5448-4c43-8044-773ae187358a", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-02T07:08:46.583+0300", + "explainedStatus": "suspended", + "version": 2 + }, + { + "instanceConfigDtCreated": "2026-02-03T09:05:51.002+0300", + "instanceConfigDtUpdated": "2026-02-03T09:05:51.002+0300", + "instanceUid": "801662d3-d54c-4d65-85ea-1a78863b88ea", + "displayName": "S3-Bucket (technicals3backup-70f921b1-12cf-4069-ae38-3aa9a7cf3df1)", + "serviceId": 13, + "specificationItemId": 1576, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "S3 бакет", + "code": null, + "resourceRealmTypeId": 1, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "6cebbdab-76d6-4f06-b010-785f4c5491c2", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-12T14:47:39.762+0300", + "operationDtFinish": "2026-02-12T14:47:55.762+0300", + "duration": 16, + "uptime": 0, + "dtDeploy": "2026-02-12T14:47:55.762+0300", + "instanceStateUid": "dd6abc36-0e70-4500-81df-6914dd52ac7e", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-03T09:06:26.227+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-03T15:56:54.322+0300", + "instanceConfigDtUpdated": "2026-02-03T15:56:54.322+0300", + "instanceUid": "b23c8eb4-ca3c-47de-aab1-1a26020de435", + "displayName": "A-record (lucee-20260203-01.luceek8s)", + "serviceId": 111, + "specificationItemId": 1585, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "c9cea9f2-f387-49cc-a87f-5d7d3d2619e7", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-03T15:58:01.243+0300", + "operationDtFinish": "2026-02-03T15:58:25.957+0300", + "duration": 24.7, + "uptime": 2300734.120539, + "dtDeploy": "2026-02-03T15:58:25.957+0300", + "instanceStateUid": "a8fe6e2e-d95d-4a59-bfe7-e15c75357976", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-03T15:58:25.088+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-03T16:26:57.783+0300", + "instanceConfigDtUpdated": "2026-02-03T16:26:57.783+0300", + "instanceUid": "bd1d689e-bce2-4792-9f1f-73cd1d6c7de7", + "displayName": "tf-kafka-20260203-01", + "serviceId": 116, + "specificationItemId": 1587, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "ApacheKafka", + "code": null, + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "suspend", + "lastOperationUid": "3b34ac0b-c92e-4b04-8816-7de26da7b8d6", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-05T18:27:04.320+0300", + "operationDtFinish": "2026-02-05T18:27:22.216+0300", + "duration": 17.9, + "uptime": 0, + "dtDeploy": "2026-02-05T18:27:22.216+0300", + "instanceStateUid": "2d1600a1-afab-4375-b099-657ac649ceb8", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/bd1d689e-bce2-4792-9f1f-73cd1d6c7de7?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-03T16:29:23.623+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-03T16:51:21.034+0300", + "instanceConfigDtUpdated": "2026-02-03T16:51:21.034+0300", + "instanceUid": "32aa5c02-61fd-41f5-8b27-4840c835b793", + "displayName": "A-record (admin.873b1a10-593c-4efc-bbdb-00b8daf3fda3)", + "serviceId": 111, + "specificationItemId": 1592, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "7b539c82-3266-42b2-8ff5-2a520f266962", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-03T16:51:30.792+0300", + "operationDtFinish": "2026-02-03T16:51:48.145+0300", + "duration": 17.4, + "uptime": 2297531.932539, + "dtDeploy": "2026-02-03T16:51:48.145+0300", + "instanceStateUid": "dad4d62f-a036-46ed-b382-04b79a9a2d25", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-03T16:51:47.274+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-03T16:55:52.849+0300", + "instanceConfigDtUpdated": "2026-02-03T16:55:52.849+0300", + "instanceUid": "2c4f21b1-404f-4aeb-812b-915bf3d88850", + "displayName": "A-record (nodejs-20260203-01.nodejsk8s)", + "serviceId": 111, + "specificationItemId": 1594, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "0a97186e-7e63-4ac8-af98-4798284acc47", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-03T16:56:01.677+0300", + "operationDtFinish": "2026-02-03T16:56:17.757+0300", + "duration": 16.1, + "uptime": 2297262.320539, + "dtDeploy": "2026-02-03T16:56:17.757+0300", + "instanceStateUid": "60ca4242-077a-4f06-974c-e8b0bf1eb46a", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-03T16:56:16.868+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-04T09:09:33.934+0300", + "instanceConfigDtUpdated": "2026-02-04T09:09:33.934+0300", + "instanceUid": "f6a24a6a-beb6-4078-b27b-ca92d3237689", + "displayName": "A-record (pgadmin-211411.pgadmink8s)", + "serviceId": 111, + "specificationItemId": 1616, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "444ee34f-6ace-4434-a594-417f3364971b", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-04T09:09:44.779+0300", + "operationDtFinish": "2026-02-04T09:10:00.310+0300", + "duration": 15.5, + "uptime": 2238839.767539, + "dtDeploy": "2026-02-04T09:10:00.310+0300", + "instanceStateUid": "4e5ff038-d337-4811-9d7e-9e3bd91da843", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-04T09:09:59.365+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-03T15:56:15.868+0300", + "instanceConfigDtUpdated": "2026-02-03T15:56:15.868+0300", + "instanceUid": "b3a75608-d980-448d-9ea3-bb924357d994", + "displayName": "tf-lucee-20260203-01", + "serviceId": 94, + "specificationItemId": 1583, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Lucee", + "code": null, + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "suspend", + "lastOperationUid": "2472e5fa-ecf5-4dbc-861b-55f090b6e074", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-04T22:21:24.841+0300", + "operationDtFinish": "2026-02-04T22:21:39.984+0300", + "duration": 15.1, + "uptime": 0, + "dtDeploy": "2026-02-04T22:21:39.984+0300", + "instanceStateUid": "a0227f3c-1f64-4837-9c71-cd0311453525", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": null, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/b3a75608-d980-448d-9ea3-bb924357d994?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-04T22:21:39.008+0300", + "explainedStatus": "suspended", + "version": 4 + }, + { + "instanceConfigDtCreated": "2026-02-03T16:55:18.247+0300", + "instanceConfigDtUpdated": "2026-02-03T16:55:18.247+0300", + "instanceUid": "b5c58586-a490-4734-8e5f-6a277ca3ae21", + "displayName": "tf-nodejs-20260203-01", + "serviceId": 95, + "specificationItemId": 1593, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "NodeJS", + "code": null, + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "suspend", + "lastOperationUid": "fa766ee8-ea98-4e84-bdfd-1e4fbb8330f8", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-04T22:22:41.995+0300", + "operationDtFinish": "2026-02-04T22:23:01.312+0300", + "duration": 19.3, + "uptime": 0, + "dtDeploy": "2026-02-04T22:23:01.312+0300", + "instanceStateUid": "e0518d58-81cb-4554-8fd7-7cb405d7b25a", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/b5c58586-a490-4734-8e5f-6a277ca3ae21?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-04T22:23:00.528+0300", + "explainedStatus": "suspended", + "version": 4 + }, + { + "instanceConfigDtCreated": "2026-02-03T16:50:38.848+0300", + "instanceConfigDtUpdated": "2026-02-03T16:50:38.848+0300", + "instanceUid": "873b1a10-593c-4efc-bbdb-00b8daf3fda3", + "displayName": "tf-rabbitmq-20260203-01", + "serviceId": 93, + "specificationItemId": 1591, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "RabbitMQ", + "code": null, + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "suspend", + "lastOperationUid": "f5ac8a4e-cd34-4a79-aef9-567edb04490b", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-04T22:41:11.104+0300", + "operationDtFinish": "2026-02-04T22:41:40.851+0300", + "duration": 29.7, + "uptime": 0, + "dtDeploy": "2026-02-04T22:41:40.851+0300", + "instanceStateUid": "2ca9d98d-e622-40c5-ae13-08325c18af5a", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/873b1a10-593c-4efc-bbdb-00b8daf3fda3?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-04T22:41:39.699+0300", + "explainedStatus": "suspended", + "version": 5 + }, + { + "instanceConfigDtCreated": "2026-02-03T09:34:52.745+0300", + "instanceConfigDtUpdated": "2026-02-03T09:34:52.745+0300", + "instanceUid": "220160bb-5482-4912-8605-b5ed18b37de4", + "displayName": "tf-vm-20260203-01", + "serviceId": 28, + "specificationItemId": 1579, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Виртуальная машина", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "suspend", + "lastOperationUid": "ba4a2e72-2a6b-48f9-9ad3-958d35359cb7", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-04T22:41:13.114+0300", + "operationDtFinish": "2026-02-04T22:42:08.957+0300", + "duration": 55.8, + "uptime": 0, + "dtDeploy": "2026-02-04T22:42:08.957+0300", + "instanceStateUid": "f0a9b9ff-dc25-4844-a673-466f03e40c42", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-04T22:42:08.056+0300", + "explainedStatus": "suspended", + "version": 8 + }, + { + "instanceConfigDtCreated": "2026-02-05T07:21:52.113+0300", + "instanceConfigDtUpdated": "2026-02-05T07:21:52.113+0300", + "instanceUid": "7d17bd94-c27b-475d-8750-f6ade7b2e375", + "displayName": "S3-Bucket (technicals3backup-b1d8ab38-bd8a-4be4-a27c-9b1a74dc0f19)", + "serviceId": 13, + "specificationItemId": 1627, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "S3 бакет", + "code": null, + "resourceRealmTypeId": 1, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "f12c7323-36b5-436d-b316-1ddefb55320c", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-12T14:47:17.194+0300", + "operationDtFinish": "2026-02-12T14:47:32.538+0300", + "duration": 15.3, + "uptime": 0, + "dtDeploy": "2026-02-12T14:47:32.538+0300", + "instanceStateUid": "85bc58d1-1bd2-4db1-9971-73968d38e0f5", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-05T07:22:24.947+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-05T07:15:51.625+0300", + "instanceConfigDtUpdated": "2026-02-05T07:15:51.625+0300", + "instanceUid": "b1d8ab38-bd8a-4be4-a27c-9b1a74dc0f19", + "displayName": "naeel_pg", + "serviceId": 90, + "specificationItemId": 1625, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "PostgreSQL", + "code": "paas.pg.0", + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "fb109578-e349-47ea-83c8-70f82c9fafaf", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-05T07:21:39.938+0300", + "operationDtFinish": "2026-02-05T07:23:39.139+0300", + "duration": 119.2, + "uptime": 2158820.938539, + "dtDeploy": "2026-02-05T07:23:39.139+0300", + "instanceStateUid": "1eee5685-b76a-48f0-86db-93c65f68c0bf", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/b1d8ab38-bd8a-4be4-a27c-9b1a74dc0f19?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-05T07:23:37.478+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-05T07:26:17.065+0300", + "instanceConfigDtUpdated": "2026-02-05T07:26:17.065+0300", + "instanceUid": "14a93bbb-ea04-41e2-8965-906ab67a9279", + "displayName": "A-record (gitea-naeel.giteak8s)", + "serviceId": 111, + "specificationItemId": 1629, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "0af6f42f-32d9-46b7-9878-8d44cbbdc744", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-05T07:26:26.797+0300", + "operationDtFinish": "2026-02-05T07:26:43.261+0300", + "duration": 16.5, + "uptime": 2158636.816539, + "dtDeploy": "2026-02-05T07:26:43.261+0300", + "instanceStateUid": "ce99d077-00e7-401e-aed8-1ae5ad37a593", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-05T07:26:42.467+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-05T07:25:19.546+0300", + "instanceConfigDtUpdated": "2026-02-05T07:25:19.546+0300", + "instanceUid": "e15e66e1-c613-4230-8f5e-263804224b0f", + "displayName": "naeel_git", + "serviceId": 99, + "specificationItemId": 1628, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Gitea", + "code": null, + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "2420110b-bb91-457c-826f-aedf3d0bc252", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-05T07:25:28.524+0300", + "operationDtFinish": "2026-02-05T07:27:58.044+0300", + "duration": 149.5, + "uptime": 2158562.033539, + "dtDeploy": "2026-02-05T07:27:58.044+0300", + "instanceStateUid": "b262ca01-6069-4e65-9efb-2123a3ae979c", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/e15e66e1-c613-4230-8f5e-263804224b0f?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-05T07:27:57.014+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-03T17:50:41.649+0300", + "instanceConfigDtUpdated": "2026-02-03T17:50:41.649+0300", + "instanceUid": "3ec2d96d-a897-45ce-83ac-e7de3de01894", + "displayName": "tf-mongodb-20260203-01", + "serviceId": 92, + "specificationItemId": 1602, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "MongoDB", + "code": "paas.mngo.0", + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "647b320c-d7d2-4d7b-a045-e5fef780972d", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-18T15:47:37.984+0300", + "operationDtFinish": "2026-02-18T15:47:43.654+0300", + "duration": 5.7, + "uptime": 0, + "dtDeploy": "2026-02-18T15:47:43.654+0300", + "instanceStateUid": "881c808d-594f-45db-b2e4-e454836006f7", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/3ec2d96d-a897-45ce-83ac-e7de3de01894?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-05T18:28:38.103+0300", + "explainedStatus": "suspended", + "version": 4 + }, + { + "instanceConfigDtCreated": "2026-02-03T20:15:53.157+0300", + "instanceConfigDtUpdated": "2026-02-03T20:15:53.157+0300", + "instanceUid": "738ddfec-f85d-4faf-80f4-80e9593f9457", + "displayName": "tf-pgadmin-20260203-01", + "serviceId": 96, + "specificationItemId": 1612, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "pgAdmin", + "code": null, + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "567a2f8b-2443-478c-8305-b131cadc7a70", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-18T15:47:18.200+0300", + "operationDtFinish": "2026-02-18T15:47:20.208+0300", + "duration": 2, + "uptime": 0, + "dtDeploy": "2026-02-18T15:47:20.208+0300", + "instanceStateUid": "50d66871-8c47-4f80-875b-fb1dcc0294be", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/738ddfec-f85d-4faf-80f4-80e9593f9457?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-05T18:30:33.647+0300", + "explainedStatus": "suspended", + "version": 2 + }, + { + "instanceConfigDtCreated": "2025-10-14T20:21:28.692+0300", + "instanceConfigDtUpdated": "2025-10-14T20:21:28.692+0300", + "instanceUid": "6d6061cb-b0c1-44b9-8969-a70f08fe673c", + "displayName": "s3-111805", + "serviceId": 12, + "specificationItemId": 740, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "S3 Object Storage", + "code": "paas.s3.ceph", + "resourceRealmTypeId": 1, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "modify", + "lastOperationUid": "b253c908-a198-4e8a-a82a-7b1945bfa1a7", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-11T11:22:14.194+0300", + "operationDtFinish": "2026-02-11T11:22:29.925+0300", + "duration": 15.7, + "uptime": 1626090.152539, + "dtDeploy": "2026-02-11T11:22:29.925+0300", + "instanceStateUid": "b5e0d98f-45e2-4cd9-9092-0755ed7fa3bd", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/6d6061cb-b0c1-44b9-8969-a70f08fe673c?orgId=28", + "resourceRealm": "s3.msk-1.ngcloud.ru", + "dtState": "2026-02-11T11:22:29.357+0300", + "explainedStatus": "running", + "version": 7 + }, + { + "instanceConfigDtCreated": "2026-02-13T09:33:19.247+0300", + "instanceConfigDtUpdated": "2026-02-13T09:33:19.247+0300", + "instanceUid": "6076a11c-c236-4b6f-b9b4-776f1de7db67", + "displayName": "S3-Bucket (technicals3backup-a8f82756-d656-4e9b-814b-67b2ba6ae5af)", + "serviceId": 13, + "specificationItemId": 1676, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "S3 бакет", + "code": null, + "resourceRealmTypeId": 1, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "3ce842d2-57e3-494d-96d2-d4a5c9c1e839", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-13T09:33:59.958+0300", + "operationDtFinish": "2026-02-13T09:34:28.050+0300", + "duration": 28.1, + "uptime": 1459772.027539, + "dtDeploy": "2026-02-13T09:34:28.050+0300", + "instanceStateUid": "5996796c-6133-47c9-bc49-7d5826b7d9e5", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-13T09:34:26.998+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-13T10:03:55.116+0300", + "instanceConfigDtUpdated": "2026-02-13T10:03:55.116+0300", + "instanceUid": "4e167aad-e5d4-4d79-b037-59d552ac170c", + "displayName": "S3-Bucket (technicals3backup-f1543ffc-f5a8-4064-ab10-115c7e5cc68f)", + "serviceId": 13, + "specificationItemId": 1683, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "S3 бакет", + "code": null, + "resourceRealmTypeId": 1, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "f72bdc77-545c-4eec-ad48-8a8d1f37cfec", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-13T10:04:05.610+0300", + "operationDtFinish": "2026-02-13T10:04:28.799+0300", + "duration": 23.2, + "uptime": 1457971.278539, + "dtDeploy": "2026-02-13T10:04:28.799+0300", + "instanceStateUid": "cd1e3fac-57f5-42ea-8881-1ca90d950510", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-13T10:04:27.746+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-12T10:15:40.387+0300", + "instanceConfigDtUpdated": "2026-02-12T10:15:40.387+0300", + "instanceUid": "e08d5eac-3e7a-4843-a564-c02f381022ff", + "displayName": "S3-Bucket (technicals3backup-32322a19-62b1-4458-ade5-a0b875c99b1c)", + "serviceId": 13, + "specificationItemId": 1666, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "S3 бакет", + "code": null, + "resourceRealmTypeId": 1, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "bc182b7f-72aa-4569-a3cc-ebb10203b174", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-12T14:46:46.399+0300", + "operationDtFinish": "2026-02-12T14:47:09.544+0300", + "duration": 23.1, + "uptime": 0, + "dtDeploy": "2026-02-12T14:47:09.544+0300", + "instanceStateUid": "931fe47a-6e12-44b8-9a14-4a447c8aad1d", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-12T10:16:49.252+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-12T10:22:32.422+0300", + "instanceConfigDtUpdated": "2026-02-12T10:22:32.422+0300", + "instanceUid": "49701d67-75db-4d31-bcf5-17074bfe905c", + "displayName": "A-record (web01.luceek8s)", + "serviceId": 111, + "specificationItemId": 1669, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "bf505e16-3de3-45b3-8d81-e117024a6fa6", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-12T10:22:42.229+0300", + "operationDtFinish": "2026-02-12T10:22:58.759+0300", + "duration": 16.5, + "uptime": 1543261.318539, + "dtDeploy": "2026-02-12T10:22:58.759+0300", + "instanceStateUid": "a72ff184-db42-4db9-a5f7-cc903712501a", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-12T10:22:57.929+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-12T11:56:48.928+0300", + "instanceConfigDtUpdated": "2026-02-12T11:56:48.928+0300", + "instanceUid": "40ddad34-aa36-49ef-8ae7-b709fddc31e9", + "displayName": "vIp for (70f921b1-12cf-4069-ae38-3aa9a7cf3df1)", + "serviceId": 25, + "specificationItemId": 1671, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Публичные IP адреса", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "bff8dedb-7daf-4a86-957d-02d933f60641", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-12T11:57:03.475+0300", + "operationDtFinish": "2026-02-12T11:57:45.586+0300", + "duration": 42.1, + "uptime": 1537574.491539, + "dtDeploy": "2026-02-12T11:57:45.586+0300", + "instanceStateUid": "ebfe85fb-ac4d-4576-9945-77f784d84547", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-12T11:57:44.481+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-12T11:57:57.188+0300", + "instanceConfigDtUpdated": "2026-02-12T11:57:57.188+0300", + "instanceUid": "7c70c6ad-c9f4-457f-b42f-fed702a4523c", + "displayName": "A-record (write.70f921b1-12cf-4069-ae38-3aa9a7cf3df1)", + "serviceId": 111, + "specificationItemId": 1672, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "b3dfe73c-9c79-45d1-87bc-86433dc730fc", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-12T11:58:08.361+0300", + "operationDtFinish": "2026-02-12T11:58:25.441+0300", + "duration": 17.1, + "uptime": 1537534.636539, + "dtDeploy": "2026-02-12T11:58:25.441+0300", + "instanceStateUid": "2e3d09a4-c5e5-416e-ba7a-67dd8a818019", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-12T11:58:24.475+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-12T12:05:14.439+0300", + "instanceConfigDtUpdated": "2026-02-12T12:05:14.439+0300", + "instanceUid": "729df942-767c-45e6-8a3a-b083cc0fdbf2", + "displayName": "vIp for (32322a19-62b1-4458-ade5-a0b875c99b1c)", + "serviceId": 25, + "specificationItemId": 1673, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Публичные IP адреса", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "a173f3af-02d2-4e26-ae9c-177fba8d6cdd", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-12T12:05:27.079+0300", + "operationDtFinish": "2026-02-12T12:06:18.407+0300", + "duration": 51.3, + "uptime": 1537061.670539, + "dtDeploy": "2026-02-12T12:06:18.407+0300", + "instanceStateUid": "ebced8f3-1bfa-4308-8a97-19d10c8db55f", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-12T12:06:17.291+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-12T12:06:25.971+0300", + "instanceConfigDtUpdated": "2026-02-12T12:06:25.971+0300", + "instanceUid": "5857abae-b0a8-45de-83e7-f8734f24f7b8", + "displayName": "A-record (write.32322a19-62b1-4458-ade5-a0b875c99b1c)", + "serviceId": 111, + "specificationItemId": 1674, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "e4fc2d41-3d85-4460-91d2-014b48e0e6a8", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-12T12:06:36.512+0300", + "operationDtFinish": "2026-02-12T12:06:53.287+0300", + "duration": 16.8, + "uptime": 1537026.790539, + "dtDeploy": "2026-02-12T12:06:53.287+0300", + "instanceStateUid": "e44d1616-21a9-4f17-97c6-b8a82c3304b6", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-12T12:06:52.395+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-03T09:05:08.722+0300", + "instanceConfigDtUpdated": "2026-02-03T09:05:08.722+0300", + "instanceUid": "70f921b1-12cf-4069-ae38-3aa9a7cf3df1", + "displayName": "tf-postgres-20260203-01", + "serviceId": 90, + "specificationItemId": 1575, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "PostgreSQL", + "code": "paas.pg.0", + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "c0445b18-b6e9-4bb4-ac1b-967fd2d587f4", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-18T15:49:46.637+0300", + "operationDtFinish": "2026-02-18T15:49:48.340+0300", + "duration": 1.7, + "uptime": 0, + "dtDeploy": "2026-02-18T15:49:48.340+0300", + "instanceStateUid": "9f45c551-6768-432c-bdda-1f2524ce3b24", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/70f921b1-12cf-4069-ae38-3aa9a7cf3df1?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-12T13:02:28.212+0300", + "explainedStatus": "suspended", + "version": 12 + }, + { + "instanceConfigDtCreated": "2025-10-26T14:42:44.380+0300", + "instanceConfigDtUpdated": "2025-10-26T14:42:44.380+0300", + "instanceUid": "094053f9-0acb-49c8-89da-e09e7a06f832", + "displayName": "supermax", + "serviceId": 110, + "specificationItemId": 841, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS зона", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "92dac0ad-c63a-42b2-b74a-8a324bad6a4d", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2025-10-26T14:42:51.725+0300", + "operationDtFinish": "2025-10-26T14:43:10.459+0300", + "duration": 18.7, + "uptime": 10945250.629447, + "dtDeploy": "2025-10-26T14:43:10.459+0300", + "instanceStateUid": "1ac370c3-f653-47a0-9967-b0df87221b32", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "powerdns", + "dtState": "2025-10-26T14:43:09.471+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-12T10:22:02.336+0300", + "instanceConfigDtUpdated": "2026-02-12T10:22:02.336+0300", + "instanceUid": "058bbe4b-782a-44d8-8e6e-af35da1a660a", + "displayName": "luuuuuu", + "serviceId": 94, + "specificationItemId": 1668, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Lucee", + "code": null, + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "suspend", + "lastOperationUid": "222b15c8-b4ba-4f53-bb58-d7255038dc1f", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-13T09:25:48.906+0300", + "operationDtFinish": "2026-02-13T09:25:59.872+0300", + "duration": 11, + "uptime": 0, + "dtDeploy": "2026-02-13T09:25:59.872+0300", + "instanceStateUid": "7f51e212-32b8-49d5-83e3-ebbb3a636ca5", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": null, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/058bbe4b-782a-44d8-8e6e-af35da1a660a?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-13T09:25:58.843+0300", + "explainedStatus": "suspended", + "version": 6 + }, + { + "instanceConfigDtCreated": "2026-02-12T10:14:49.455+0300", + "instanceConfigDtUpdated": "2026-02-12T10:14:49.455+0300", + "instanceUid": "32322a19-62b1-4458-ade5-a0b875c99b1c", + "displayName": "pooooooo", + "serviceId": 90, + "specificationItemId": 1665, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "PostgreSQL", + "code": "paas.pg.0", + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "suspend", + "lastOperationUid": "21e6f23f-91ab-4520-97e7-932d27ca58bd", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-13T09:26:12.081+0300", + "operationDtFinish": "2026-02-13T09:26:28.898+0300", + "duration": 16.8, + "uptime": 0, + "dtDeploy": "2026-02-13T09:26:28.898+0300", + "instanceStateUid": "65176dff-91e6-4d3c-9237-98c7f2d4dd12", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/32322a19-62b1-4458-ade5-a0b875c99b1c?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-13T09:26:27.684+0300", + "explainedStatus": "suspended", + "version": 7 + }, + { + "instanceConfigDtCreated": "2026-02-13T10:05:21.815+0300", + "instanceConfigDtUpdated": "2026-02-13T10:05:21.815+0300", + "instanceUid": "07d71948-7f97-4a9b-9483-3b5631ce809b", + "displayName": "vIp for (f1543ffc-f5a8-4064-ab10-115c7e5cc68f)", + "serviceId": 25, + "specificationItemId": 1684, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Публичные IP адреса", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "531a6bec-b5e6-429a-a860-a0462650d11a", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-13T10:05:36.785+0300", + "operationDtFinish": "2026-02-13T10:06:17.487+0300", + "duration": 40.7, + "uptime": 1457863.601447, + "dtDeploy": "2026-02-13T10:06:17.487+0300", + "instanceStateUid": "91addff6-1c31-4d4d-80df-1ef8b12d7ee9", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-13T10:06:16.279+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-13T10:06:26.489+0300", + "instanceConfigDtUpdated": "2026-02-13T10:06:26.489+0300", + "instanceUid": "a476941e-0ac1-4066-98a6-4662b221acd7", + "displayName": "A-record (write.f1543ffc-f5a8-4064-ab10-115c7e5cc68f)", + "serviceId": 111, + "specificationItemId": 1685, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "23499f7d-fa70-4904-8550-9621bfde8eda", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-13T10:06:38.369+0300", + "operationDtFinish": "2026-02-13T10:06:55.398+0300", + "duration": 17, + "uptime": 1457825.690447, + "dtDeploy": "2026-02-13T10:06:55.398+0300", + "instanceStateUid": "ba523e20-6990-4374-99e0-9ce06df536b3", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-13T10:06:54.454+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-13T15:32:07.001+0300", + "instanceConfigDtUpdated": "2026-02-13T15:32:07.001+0300", + "instanceUid": "61c7d4ac-a6c2-4a7f-8bf7-e5591edce428", + "displayName": "S3-Bucket (technicals3backup-a71094c1-b0ed-4bfb-a264-37b41d279567)", + "serviceId": 13, + "specificationItemId": 1701, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "S3 бакет", + "code": null, + "resourceRealmTypeId": 1, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "797301b6-ef23-4ad1-b42f-cba0212cde47", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-17T07:07:04.276+0300", + "operationDtFinish": "2026-02-17T07:07:24.919+0300", + "duration": 20.6, + "uptime": 0, + "dtDeploy": "2026-02-17T07:07:24.919+0300", + "instanceStateUid": "0ab4e8a8-23e9-433c-8935-21cf13630857", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-13T15:32:39.017+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-13T15:40:33.577+0300", + "instanceConfigDtUpdated": "2026-02-13T15:40:33.577+0300", + "instanceUid": "dd8030d8-03c7-47cf-9acc-dec9285ffe8f", + "displayName": "A-record (web02.luceek8s)", + "serviceId": 111, + "specificationItemId": 1704, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "8be1f0d6-c294-42aa-b577-843385e7f9f7", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-13T15:40:43.247+0300", + "operationDtFinish": "2026-02-13T15:41:00.091+0300", + "duration": 16.8, + "uptime": 1437780.997447, + "dtDeploy": "2026-02-13T15:41:00.091+0300", + "instanceStateUid": "d6d2732d-d6a2-4b34-9b2d-8ed3a0be26a9", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-13T15:40:59.044+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-13T15:40:03.402+0300", + "instanceConfigDtUpdated": "2026-02-13T15:40:03.402+0300", + "instanceUid": "a418ee58-c8b4-4ce6-950b-2a341d2997f0", + "displayName": "lucy0", + "serviceId": 94, + "specificationItemId": 1703, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Lucee", + "code": null, + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "suspend", + "lastOperationUid": "0a6e7946-580f-4d6c-8dde-7832f4cf9700", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-13T16:06:57.935+0300", + "operationDtFinish": "2026-02-13T16:07:15.697+0300", + "duration": 17.8, + "uptime": 0, + "dtDeploy": "2026-02-13T16:07:15.697+0300", + "instanceStateUid": "cbfe3c08-8983-4d49-af51-427b1600e4ad", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": null, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/a418ee58-c8b4-4ce6-950b-2a341d2997f0?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-13T16:07:14.282+0300", + "explainedStatus": "suspended", + "version": 4 + }, + { + "instanceConfigDtCreated": "2026-02-13T17:57:00.537+0300", + "instanceConfigDtUpdated": "2026-02-13T17:57:00.537+0300", + "instanceUid": "3fc966d7-9dea-4730-b004-82306a9b3de5", + "displayName": "A-record (web03.luceek8s)", + "serviceId": 111, + "specificationItemId": 1710, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "a823baae-821e-4020-8707-23f9a9d378b6", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-13T17:57:10.258+0300", + "operationDtFinish": "2026-02-13T17:57:27.319+0300", + "duration": 17.1, + "uptime": 1429593.769447, + "dtDeploy": "2026-02-13T17:57:27.319+0300", + "instanceStateUid": "eb362b3d-bf76-40cc-a127-83d6a7187dbd", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-13T17:57:26.492+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-13T09:49:02.570+0300", + "instanceConfigDtUpdated": "2026-02-13T09:49:02.570+0300", + "instanceUid": "f1543ffc-f5a8-4064-ab10-115c7e5cc68f", + "displayName": "p-antiddos1", + "serviceId": 90, + "specificationItemId": 1680, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "PostgreSQL", + "code": "paas.pg.0", + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "suspend", + "lastOperationUid": "9cd2369b-54e4-4ef0-a03e-ca73b3a9d63b", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-16T07:30:20.882+0300", + "operationDtFinish": "2026-02-16T07:31:08.636+0300", + "duration": 47.8, + "uptime": 0, + "dtDeploy": "2026-02-16T07:31:08.636+0300", + "instanceStateUid": "682b9c60-0c26-4a86-82dd-68ea45b69a1b", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/f1543ffc-f5a8-4064-ab10-115c7e5cc68f?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-16T07:30:36.783+0300", + "explainedStatus": "suspended", + "version": 6 + }, + { + "instanceConfigDtCreated": "2026-02-17T11:04:17.063+0300", + "instanceConfigDtUpdated": "2026-02-17T11:04:17.063+0300", + "instanceUid": "b269838d-f116-45cf-a705-d0170ccd4d0a", + "displayName": "A-record (node.nodejsk8s)", + "serviceId": 111, + "specificationItemId": 1719, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "9326db8c-1ff2-4a79-bcd6-4341f64e0903", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-17T11:05:01.980+0300", + "operationDtFinish": "2026-02-17T11:05:24.430+0300", + "duration": 22.5, + "uptime": 1108716.658447, + "dtDeploy": "2026-02-17T11:05:24.430+0300", + "instanceStateUid": "856460f1-e064-41bf-8e0a-14c72a0683b3", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-17T11:05:23.538+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-23T09:49:28.819+0300", + "instanceConfigDtUpdated": "2026-02-23T09:49:28.819+0300", + "instanceUid": "a4ba904f-0a9f-4cbf-ba61-2ff3afcdddd3", + "displayName": "A-record (rb-worker.containerk8s)", + "serviceId": 111, + "specificationItemId": 1756, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "9669959a-dec4-4355-abca-a7c8c8399959", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-23T09:49:37.733+0300", + "operationDtFinish": "2026-02-23T09:49:53.411+0300", + "duration": 15.7, + "uptime": 594847.677447, + "dtDeploy": "2026-02-23T09:49:53.411+0300", + "instanceStateUid": "168ffd37-c3b9-46ed-8cbb-c3d5f63e36e6", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-23T09:49:52.650+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-23T08:43:16.775+0300", + "instanceConfigDtUpdated": "2026-02-23T08:43:16.775+0300", + "instanceUid": "fae80ccd-5271-423d-a31a-1f410f4d4af7", + "displayName": "A-record (admin.fa869c3f-aabc-4845-85df-6b64b1e6ddb6)", + "serviceId": 111, + "specificationItemId": 1746, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "d1e60c44-1541-46e5-a50e-68c7f038f2db", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-23T08:44:06.780+0300", + "operationDtFinish": "2026-02-23T08:44:29.425+0300", + "duration": 22.6, + "uptime": 598771.663447, + "dtDeploy": "2026-02-23T08:44:29.425+0300", + "instanceStateUid": "bf52954f-9b13-411e-a8e3-b6f71eba6577", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-23T08:44:28.593+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-23T09:48:55.798+0300", + "instanceConfigDtUpdated": "2026-02-23T09:48:55.798+0300", + "instanceUid": "ff3df583-9a2c-4436-8717-f5bd4dcdac47", + "displayName": "rb-worker-01", + "serviceId": 98, + "specificationItemId": 1755, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Простой HTTP контейнер", + "code": null, + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "f41c442e-ff55-44b7-8c7e-6e26f73e3e4e", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-23T15:42:32.869+0300", + "operationDtFinish": "2026-02-23T15:42:34.367+0300", + "duration": 1.5, + "uptime": 0, + "dtDeploy": "2026-02-23T15:42:34.367+0300", + "instanceStateUid": "17ce2838-53d2-4ffe-a340-f7683dc062c2", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/ff3df583-9a2c-4436-8717-f5bd4dcdac47?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-23T10:45:19.311+0300", + "explainedStatus": "suspended", + "version": 2 + }, + { + "instanceConfigDtCreated": "2026-02-23T10:49:52.704+0300", + "instanceConfigDtUpdated": "2026-02-23T10:49:52.704+0300", + "instanceUid": "9ac1ecc6-6e83-4932-83dd-a79a42ae38fb", + "displayName": "A-record (rb-worker-02.containerk8s)", + "serviceId": 111, + "specificationItemId": 1759, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "5ceca74f-68f0-4654-802d-edad90a43241", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-23T10:50:02.906+0300", + "operationDtFinish": "2026-02-23T10:50:20.483+0300", + "duration": 17.6, + "uptime": 591220.605447, + "dtDeploy": "2026-02-23T10:50:20.483+0300", + "instanceStateUid": "20844792-2784-4df1-aa5a-cdebedfc80f2", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-23T10:50:19.500+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-23T11:51:52.409+0300", + "instanceConfigDtUpdated": "2026-02-23T11:51:52.409+0300", + "instanceUid": "07b215aa-f09b-4b47-a5c4-ff746e720da0", + "displayName": "A-record (rb-ui.luceek8s)", + "serviceId": 111, + "specificationItemId": 1761, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "881fb77b-b7e5-4fbc-8b3c-d72ad18bbb22", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-23T11:52:02.701+0300", + "operationDtFinish": "2026-02-23T11:52:20.336+0300", + "duration": 17.6, + "uptime": 587500.752447, + "dtDeploy": "2026-02-23T11:52:20.336+0300", + "instanceStateUid": "65c5d6ef-df19-4803-a9b5-95c4894987c8", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-23T11:52:19.318+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-23T10:49:21.473+0300", + "instanceConfigDtUpdated": "2026-02-23T10:49:21.473+0300", + "instanceUid": "9754811b-245f-4a30-9fc8-d50d0838be3b", + "displayName": "rb-worker-02", + "serviceId": 98, + "specificationItemId": 1758, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Простой HTTP контейнер", + "code": null, + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "a7821331-aea4-4d1b-bfb4-565b160061d6", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-23T15:43:58.994+0300", + "operationDtFinish": "2026-02-23T15:44:00.868+0300", + "duration": 1.9, + "uptime": 0, + "dtDeploy": "2026-02-23T15:44:00.868+0300", + "instanceStateUid": "cecf4f8a-b8a0-45ed-af55-3ec420bf3bfe", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/9754811b-245f-4a30-9fc8-d50d0838be3b?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-23T15:42:23.783+0300", + "explainedStatus": "suspended", + "version": 4 + }, + { + "instanceConfigDtCreated": "2026-02-23T16:05:40.067+0300", + "instanceConfigDtUpdated": "2026-02-23T16:05:40.067+0300", + "instanceUid": "dd47dcd1-7605-4f52-bb03-03faba4f6dd7", + "displayName": "A-record (nodeworker.nodejsk8s)", + "serviceId": 111, + "specificationItemId": 1764, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "3897fad8-4ddc-40b8-a22c-209d45dff677", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-23T16:06:01.970+0300", + "operationDtFinish": "2026-02-23T16:06:23.257+0300", + "duration": 21.3, + "uptime": 572257.831447, + "dtDeploy": "2026-02-23T16:06:23.257+0300", + "instanceStateUid": "6bc07e5d-5048-4db3-ba95-9c3b6d7112b6", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-23T16:06:22.140+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-23T08:41:53.144+0300", + "instanceConfigDtUpdated": "2026-02-23T08:41:53.144+0300", + "instanceUid": "fa869c3f-aabc-4845-85df-6b64b1e6ddb6", + "displayName": "rabbit_0", + "serviceId": 93, + "specificationItemId": 1745, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "RabbitMQ", + "code": null, + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "resume", + "lastOperationUid": "d704c002-5a2f-4386-8ed8-c33f104191cc", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-26T16:36:08.829+0300", + "operationDtFinish": "2026-02-26T16:36:56.071+0300", + "duration": 47.2, + "uptime": 311225.017447, + "dtDeploy": "2026-02-26T16:36:56.071+0300", + "instanceStateUid": "2e61ab9c-93ee-47d3-b536-9076e33d9c64", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/fa869c3f-aabc-4845-85df-6b64b1e6ddb6?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-26T16:36:54.524+0300", + "explainedStatus": "running", + "version": 3 + }, + { + "instanceConfigDtCreated": "2026-02-23T16:05:12.975+0300", + "instanceConfigDtUpdated": "2026-02-23T16:05:12.975+0300", + "instanceUid": "a96c8dd6-6472-4661-8e02-6de15e777fa2", + "displayName": "nodeworker", + "serviceId": 95, + "specificationItemId": 1763, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "NodeJS", + "code": null, + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "resume", + "lastOperationUid": "741dee4b-f445-49ec-9b69-77902b730cd0", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-26T16:37:10.790+0300", + "operationDtFinish": "2026-02-26T16:38:21.968+0300", + "duration": 71.2, + "uptime": 311139.120447, + "dtDeploy": "2026-02-26T16:38:21.968+0300", + "instanceStateUid": "c1d8f4da-82c9-43fc-8a29-43130bf03ac5", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/a96c8dd6-6472-4661-8e02-6de15e777fa2?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-26T16:38:20.363+0300", + "explainedStatus": "running", + "version": 9 + }, + { + "instanceConfigDtCreated": "2026-02-23T11:51:14.251+0300", + "instanceConfigDtUpdated": "2026-02-23T11:51:14.251+0300", + "instanceUid": "911ef474-7eb8-44ce-8aa6-3149fa5bb4cb", + "displayName": "rb-lucee-ui", + "serviceId": 94, + "specificationItemId": 1760, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Lucee", + "code": null, + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "resume", + "lastOperationUid": "9a63542b-ab07-45dd-8516-cd0fc7c89e15", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-26T16:37:10.884+0300", + "operationDtFinish": "2026-02-26T16:38:40.599+0300", + "duration": 89.7, + "uptime": 311120.489447, + "dtDeploy": "2026-02-26T16:38:40.599+0300", + "instanceStateUid": "629b5ef8-d017-4468-ae6c-3929bdbfc552", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/911ef474-7eb8-44ce-8aa6-3149fa5bb4cb?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-26T16:38:39.180+0300", + "explainedStatus": "running", + "version": 15 + }, + { + "instanceConfigDtCreated": "2026-01-27T15:14:39.779+0300", + "instanceConfigDtUpdated": "2026-01-27T15:14:39.779+0300", + "instanceUid": "7ecccd3d-551a-43db-8453-74f2ba78f063", + "displayName": "Bolvanka Lifecycle Test 007", + "serviceId": 1, + "specificationItemId": 1328, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "suspend", + "lastOperationUid": "6069ac74-8a16-440c-b3d0-08b2d2892e2e", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-28T06:07:45.578+0300", + "operationDtFinish": "2026-02-28T06:07:50.461+0300", + "duration": 4.9, + "uptime": 0, + "dtDeploy": "2026-02-28T06:07:50.461+0300", + "instanceStateUid": "fe57ed8a-77a6-4bd8-903f-34c399ae9152", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-02-28T06:07:49.733+0300", + "explainedStatus": "suspended", + "version": 2 + }, + { + "instanceConfigDtCreated": "2026-02-13T15:31:37.243+0300", + "instanceConfigDtUpdated": "2026-02-13T15:31:37.243+0300", + "instanceUid": "a71094c1-b0ed-4bfb-a264-37b41d279567", + "displayName": "pg-tst0", + "serviceId": 90, + "specificationItemId": 1700, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "PostgreSQL", + "code": "paas.pg.0", + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "resume", + "lastOperationUid": "7e857f4a-a735-4828-ae7a-39d2f2cf6b76", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-26T19:10:10.027+0300", + "operationDtFinish": "2026-02-26T19:10:42.789+0300", + "duration": 32.8, + "uptime": 301998.299447, + "dtDeploy": "2026-02-26T19:10:42.789+0300", + "instanceStateUid": "768abfa5-fadf-4d63-8b4b-a62c65019236", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/a71094c1-b0ed-4bfb-a264-37b41d279567?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-26T19:10:41.275+0300", + "explainedStatus": "running", + "version": 13 + }, + { + "instanceConfigDtCreated": "2026-02-13T16:06:51.978+0300", + "instanceConfigDtUpdated": "2026-02-13T16:06:51.978+0300", + "instanceUid": "fca3f912-c32f-49f9-9cba-40fbaefced63", + "displayName": "lucy1", + "serviceId": 94, + "specificationItemId": 1705, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Lucee", + "code": null, + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "resume", + "lastOperationUid": "3728404f-c944-4822-8333-51304f4a5c1d", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-26T19:11:01.507+0300", + "operationDtFinish": "2026-02-26T19:12:21.681+0300", + "duration": 80.2, + "uptime": 301899.407447, + "dtDeploy": "2026-02-26T19:12:21.681+0300", + "instanceStateUid": "09646faa-58c4-4c09-9117-bc2fe5c9e61a", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/fca3f912-c32f-49f9-9cba-40fbaefced63?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-26T19:12:20.005+0300", + "explainedStatus": "running", + "version": 48 + }, + { + "instanceConfigDtCreated": "2026-02-17T11:03:38.820+0300", + "instanceConfigDtUpdated": "2026-02-17T11:03:38.820+0300", + "instanceUid": "36022248-bd6d-4d01-a2fb-e0ea4125b1bf", + "displayName": "node_0", + "serviceId": 95, + "specificationItemId": 1718, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "NodeJS", + "code": null, + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "resume", + "lastOperationUid": "1d3c959e-53d3-47ec-bf46-c4d52277b5f9", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-26T19:11:01.132+0300", + "operationDtFinish": "2026-02-26T19:13:40.822+0300", + "duration": 159.7, + "uptime": 301820.266447, + "dtDeploy": "2026-02-26T19:13:40.822+0300", + "instanceStateUid": "e4f54306-c2ca-47af-9cde-3482b440199d", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/36022248-bd6d-4d01-a2fb-e0ea4125b1bf?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-26T19:13:39.676+0300", + "explainedStatus": "running", + "version": 9 + }, + { + "instanceConfigDtCreated": "2026-01-27T15:48:02.697+0300", + "instanceConfigDtUpdated": "2026-01-27T15:48:02.697+0300", + "instanceUid": "d38a479e-7e1d-4e71-8da4-1853766e64c8", + "displayName": "Bolvanka Lifecycle Test 009", + "serviceId": 1, + "specificationItemId": 1334, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "suspend", + "lastOperationUid": "eccf0632-10c7-495a-9b44-afde82387eb6", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-28T06:07:41.761+0300", + "operationDtFinish": "2026-02-28T06:07:51.868+0300", + "duration": 10.1, + "uptime": 0, + "dtDeploy": "2026-02-28T06:07:51.868+0300", + "instanceStateUid": "23d358ca-ea88-4c01-9e23-ec6d8a2745dc", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-02-28T06:07:51.128+0300", + "explainedStatus": "suspended", + "version": 3 + }, + { + "instanceConfigDtCreated": "2026-02-27T09:17:43.131+0300", + "instanceConfigDtUpdated": "2026-02-27T09:17:43.131+0300", + "instanceUid": "f782edd0-3c1c-44a6-bbb0-9e444f2548d6", + "displayName": "S3-Bucket (technicals3backup-9bf70d4c-e0d0-4b3a-bfcc-2cd7d3967d22)", + "serviceId": 13, + "specificationItemId": 1824, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "S3 бакет", + "code": null, + "resourceRealmTypeId": 1, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "bb1f09b6-ff38-44af-b85f-68cf3792fb65", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-27T09:17:53.078+0300", + "operationDtFinish": "2026-02-27T09:18:14.689+0300", + "duration": 21.6, + "uptime": 251146.399447, + "dtDeploy": "2026-02-27T09:18:14.689+0300", + "instanceStateUid": "682ee86b-c017-4644-b262-63765850730f", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-27T09:18:13.544+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-27T09:30:20.776+0300", + "instanceConfigDtUpdated": "2026-02-27T09:30:20.776+0300", + "instanceUid": "26e0c5be-91c3-4537-95a1-fbf14b0817bb", + "displayName": "A-record (node07.nodejsk8s)", + "serviceId": 111, + "specificationItemId": 1833, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "363419cb-975c-4947-921f-5c22d7930691", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-27T09:31:17.047+0300", + "operationDtFinish": "2026-02-27T09:31:40.166+0300", + "duration": 23.1, + "uptime": 250340.922447, + "dtDeploy": "2026-02-27T09:31:40.166+0300", + "instanceStateUid": "1c3bc4e2-d8f9-4cbb-a8bf-8b4062f1b2ab", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-27T09:31:39.091+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-27T09:30:22.935+0300", + "instanceConfigDtUpdated": "2026-02-27T09:30:22.935+0300", + "instanceUid": "08393c8a-b5d1-47f5-b8cd-c663b96f18d1", + "displayName": "A-record (web07.luceek8s)", + "serviceId": 111, + "specificationItemId": 1834, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "614baf46-e5d7-49dd-9df1-6ef482539641", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-27T09:31:30.266+0300", + "operationDtFinish": "2026-02-27T09:31:51.970+0300", + "duration": 21.7, + "uptime": 250329.118447, + "dtDeploy": "2026-02-27T09:31:51.970+0300", + "instanceStateUid": "1f51cce2-97d9-46f8-9b40-3b88571adb23", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-02-27T09:31:50.956+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-02-27T09:29:56.015+0300", + "instanceConfigDtUpdated": "2026-02-27T09:29:56.015+0300", + "instanceUid": "fc92d87b-368d-452b-96ab-fb9c313b2e1b", + "displayName": "node_01", + "serviceId": 95, + "specificationItemId": 1831, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "NodeJS", + "code": null, + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "ae66ed56-d8d2-41ba-9d1c-860ee0d927be", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": true, + "operationDtStart": null, + "operationDtFinish": null, + "duration": null, + "uptime": 0, + "dtDeploy": null, + "instanceStateUid": "80ad7e11-f391-419f-b43d-fff6af249442", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/fc92d87b-368d-452b-96ab-fb9c313b2e1b?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-02-27T18:04:33.703+0300", + "explainedStatus": "suspended", + "version": 13 + }, + { + "instanceConfigDtCreated": "2026-02-27T09:29:56.255+0300", + "instanceConfigDtUpdated": "2026-02-27T09:29:56.255+0300", + "instanceUid": "50d7ea7b-105f-4cec-ac3a-1cf010aefb2a", + "displayName": "lucy11", + "serviceId": 94, + "specificationItemId": 1832, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Lucee", + "code": null, + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "suspend", + "lastOperationUid": "71ae5d11-c538-4129-84a1-af2ad87fda35", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-03-01T22:50:57.479+0300", + "operationDtFinish": "2026-03-01T22:51:09.125+0300", + "duration": 11.6, + "uptime": 0, + "dtDeploy": "2026-03-01T22:51:09.125+0300", + "instanceStateUid": "1455ae2e-142f-4c56-92c2-0104ba15cc88", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": null, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/50d7ea7b-105f-4cec-ac3a-1cf010aefb2a?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-03-01T22:51:08.058+0300", + "explainedStatus": "suspended", + "version": 13 + }, + { + "instanceConfigDtCreated": "2026-02-27T09:17:10.413+0300", + "instanceConfigDtUpdated": "2026-02-27T09:17:10.413+0300", + "instanceUid": "9bf70d4c-e0d0-4b3a-bfcc-2cd7d3967d22", + "displayName": "pg-testing", + "serviceId": 90, + "specificationItemId": 1823, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "PostgreSQL", + "code": "paas.pg.0", + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "suspend", + "lastOperationUid": "b40cfccf-2f57-4d32-b2fa-751a76265261", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-03-01T22:51:18.859+0300", + "operationDtFinish": "2026-03-01T22:51:34.735+0300", + "duration": 15.9, + "uptime": 0, + "dtDeploy": "2026-03-01T22:51:34.735+0300", + "instanceStateUid": "655558a3-53e3-451b-9819-771044af4c22", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/9bf70d4c-e0d0-4b3a-bfcc-2cd7d3967d22?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2026-03-01T22:51:33.724+0300", + "explainedStatus": "suspended", + "version": 11 + }, + { + "instanceConfigDtCreated": "2025-10-26T14:46:05.011+0300", + "instanceConfigDtUpdated": "2025-10-26T14:46:05.011+0300", + "instanceUid": "bbb8ba37-2fd8-4b38-b389-ad4e8f31544d", + "displayName": "k8c", + "serviceId": 111, + "specificationItemId": 842, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "921dc840-52c7-4b3c-bb5a-837a05e39915", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2025-10-26T14:46:11.926+0300", + "operationDtFinish": "2025-10-26T14:46:26.935+0300", + "duration": 15, + "uptime": 10945054.153447, + "dtDeploy": "2025-10-26T14:46:26.935+0300", + "instanceStateUid": "be06b5fa-b1ed-4ff1-885f-579d46779aaf", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2025-10-26T14:46:26.039+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-25T09:43:24.907+0300", + "instanceConfigDtUpdated": "2026-01-25T09:43:24.907+0300", + "instanceUid": "05a7708c-ba37-4be2-987c-0b73347db6a6", + "displayName": "QuickTest-20260125064317", + "serviceId": 1, + "specificationItemId": 1285, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "667ca4ec-c4a5-420c-b75c-070d4a9aab54", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-25T09:43:33.803+0300", + "operationDtFinish": "2026-01-25T09:43:42.357+0300", + "duration": 8.6, + "uptime": 3100819.889217, + "dtDeploy": "2026-01-25T09:43:42.357+0300", + "instanceStateUid": "b37afd5e-9300-4b92-832f-96298b4b6567", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-25T09:43:41.679+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-10-26T14:47:28.722+0300", + "instanceConfigDtUpdated": "2025-10-26T14:47:28.722+0300", + "instanceUid": "6ff6d822-7e56-4fc0-83e6-387847b2e110", + "displayName": "k8cwww", + "serviceId": 111, + "specificationItemId": 843, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "7761215e-4115-4bf7-90dd-164359f26ba1", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2025-10-26T14:47:34.488+0300", + "operationDtFinish": "2025-10-26T14:47:49.945+0300", + "duration": 15.5, + "uptime": 10944972.301217, + "dtDeploy": "2025-10-26T14:47:49.945+0300", + "instanceStateUid": "a933f9af-f14e-497a-a4af-11ab7d92c9ed", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2025-10-26T14:47:49.318+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-10-28T09:44:55.184+0300", + "instanceConfigDtUpdated": "2025-10-28T09:44:55.184+0300", + "instanceUid": "f7946b1c-a845-4ed0-9bac-1e38aed56e5b", + "displayName": "trinoid", + "serviceId": 111, + "specificationItemId": 846, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "1f4f9662-26b4-4916-9923-5d2ea7869b96", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2025-10-28T09:45:03.640+0300", + "operationDtFinish": "2025-10-28T09:45:22.034+0300", + "duration": 18.4, + "uptime": 10790320.212217, + "dtDeploy": "2025-10-28T09:45:22.034+0300", + "instanceStateUid": "fae635c8-c980-4115-b8c4-ff26476cbac3", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2025-10-28T09:45:21.410+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-10-16T01:07:06.981+0300", + "instanceConfigDtUpdated": "2025-10-16T01:07:06.981+0300", + "instanceUid": "09c8a73a-64ef-4afb-86a4-3382f257a618", + "displayName": "vIp for (7fd32ee2-3e2e-4198-b2fe-bcf63b5f17ac)", + "serviceId": 25, + "specificationItemId": 760, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Публичные IP адреса", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "af83c3b8-de11-4aac-9076-7190e8d7910b", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2025-10-16T01:07:18.936+0300", + "operationDtFinish": "2025-10-16T01:07:46.150+0300", + "duration": 27.2, + "uptime": 11858176.096217, + "dtDeploy": "2025-10-16T01:07:46.150+0300", + "instanceStateUid": "3ec7badd-a29e-4b7e-b163-9a263bba4b05", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "ngcloud.ru", + "dtState": "2025-10-16T01:07:45.479+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-10-16T09:13:37.058+0300", + "instanceConfigDtUpdated": "2025-10-16T09:13:37.058+0300", + "instanceUid": "1289f0ac-7a39-4d3e-884e-a7778b996977", + "displayName": "s3Bucket for (8a528abf-7f5a-4b8e-945c-1807b3dcd888)", + "serviceId": 13, + "specificationItemId": 765, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "S3 бакет", + "code": null, + "resourceRealmTypeId": 1, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "a74215e0-4e7d-4015-af10-936d77b7feb7", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2025-10-16T09:23:39.428+0300", + "operationDtFinish": "2025-10-16T09:23:46.618+0300", + "duration": 7.2, + "uptime": 0, + "dtDeploy": "2025-10-16T09:23:46.618+0300", + "instanceStateUid": "2af402e9-c707-418a-80a4-ff8125ad5939", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2025-10-16T09:14:50.289+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-10-16T09:29:28.277+0300", + "instanceConfigDtUpdated": "2025-10-16T09:29:28.277+0300", + "instanceUid": "78a050b5-2687-4fdb-ad4c-0f94517f6569", + "displayName": "s3Bucket for (f1632ed1-3d95-4ef8-9d41-ff380555c4a5)", + "serviceId": 13, + "specificationItemId": 770, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "S3 бакет", + "code": null, + "resourceRealmTypeId": 1, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "aad984fa-82c8-4bd7-bc51-960cc7e5132e", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2025-10-16T09:29:36.377+0300", + "operationDtFinish": "2025-10-16T09:29:53.285+0300", + "duration": 16.9, + "uptime": 11828048.961217, + "dtDeploy": "2025-10-16T09:29:53.285+0300", + "instanceStateUid": "4a3f45b3-743f-4b85-9c8f-c038f69e43c8", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2025-10-16T09:29:52.525+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-10-16T12:44:21.628+0300", + "instanceConfigDtUpdated": "2025-10-16T12:44:21.628+0300", + "instanceUid": "9cd4f4f0-32b4-408f-acbc-bfeab7617e5c", + "displayName": "A-record (pgadmin-naeel.pgadmink8s)", + "serviceId": 111, + "specificationItemId": 776, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "59f8bbbf-dc8e-45a1-aa41-4f4827dcd9c9", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2025-10-16T12:44:29.473+0300", + "operationDtFinish": "2025-10-16T12:44:46.167+0300", + "duration": 16.7, + "uptime": 11816356.079217, + "dtDeploy": "2025-10-16T12:44:46.167+0300", + "instanceStateUid": "ff30e8b6-b953-4941-b147-dc2778423507", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2025-10-16T12:44:45.533+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-25T09:47:47.597+0300", + "instanceConfigDtUpdated": "2026-01-25T09:47:47.597+0300", + "instanceUid": "6c4060c4-c05f-4700-b258-0ee1b1c2c14a", + "displayName": "QuickTest-20260125064745", + "serviceId": 1, + "specificationItemId": 1286, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "fa0d331b-8aee-4eb1-89ce-00d6bf49b9bd", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-25T09:47:56.457+0300", + "operationDtFinish": "2026-01-25T09:48:04.882+0300", + "duration": 8.4, + "uptime": 3100557.364217, + "dtDeploy": "2026-01-25T09:48:04.882+0300", + "instanceStateUid": "9a56d788-896a-4405-bd70-003a10146b53", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-25T09:48:04.130+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-27T11:24:20.726+0300", + "instanceConfigDtUpdated": "2026-01-27T11:24:20.726+0300", + "instanceUid": "97c7c361-8be8-4df8-986a-92d1b4ce1c2c", + "displayName": "terraform-registry", + "serviceId": 13, + "specificationItemId": 1313, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "S3 бакет", + "code": null, + "resourceRealmTypeId": 1, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "663147e6-7a07-4979-9ec4-04f65c3780df", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-27T11:25:07.145+0300", + "operationDtFinish": "2026-01-27T11:25:33.526+0300", + "duration": 26.4, + "uptime": 2921908.720217, + "dtDeploy": "2026-01-27T11:25:33.526+0300", + "instanceStateUid": "ac10061c-1a74-4937-81f0-35697e2388c9", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-01-27T11:25:32.579+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-10-16T17:03:49.100+0300", + "instanceConfigDtUpdated": "2025-10-16T17:03:49.100+0300", + "instanceUid": "148bfa14-03f3-4a8e-b9c7-0d83c923fe10", + "displayName": "s3Bucket for (cd464717-2d65-4cb8-9d38-488e7f771f2a)", + "serviceId": 13, + "specificationItemId": 788, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "S3 бакет", + "code": null, + "resourceRealmTypeId": 1, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "87440d34-eb0d-40f8-9fa9-4add0c537497", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2025-10-16T17:03:57.490+0300", + "operationDtFinish": "2025-10-16T17:04:16.328+0300", + "duration": 18.8, + "uptime": 11800785.918217, + "dtDeploy": "2025-10-16T17:04:16.328+0300", + "instanceStateUid": "a5c82572-9dd6-4f46-88f1-bb46c0afa31c", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2025-10-16T17:04:15.468+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-10-16T17:12:44.242+0300", + "instanceConfigDtUpdated": "2025-10-16T17:12:44.242+0300", + "instanceUid": "dccf8f96-950f-41da-8fc2-70f1aa6467c6", + "displayName": "s3Bucket for (f8bb2525-797e-428f-937a-d16e613f10af)", + "serviceId": 13, + "specificationItemId": 790, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "S3 бакет", + "code": null, + "resourceRealmTypeId": 1, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "c7581371-a295-4a11-9d63-3683ea6a0dbb", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-21T13:08:08.314+0300", + "operationDtFinish": "2026-02-21T13:08:10.084+0300", + "duration": 1.8, + "uptime": 0, + "dtDeploy": "2026-02-21T13:08:10.084+0300", + "instanceStateUid": "3dc8b53a-358a-4cbb-9d87-f7429802a439", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2025-10-16T17:13:09.383+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-10-15T06:39:22.851+0300", + "instanceConfigDtUpdated": "2025-10-15T06:39:22.851+0300", + "instanceUid": "7f77570f-ce8b-484d-b464-9e19ec268ef6", + "displayName": "s3Bucket for (5e71c188-e989-42d7-89ff-cc623d04f066)", + "serviceId": 13, + "specificationItemId": 742, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "S3 бакет", + "code": null, + "resourceRealmTypeId": 1, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "c61baa9b-767e-4032-92d3-ba929fc79c9e", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2025-10-15T06:39:34.297+0300", + "operationDtFinish": "2025-10-15T06:39:46.042+0300", + "duration": 11.7, + "uptime": 11924656.204217, + "dtDeploy": "2025-10-15T06:39:46.042+0300", + "instanceStateUid": "a18cb268-3e52-47f7-8a16-b98c9958297b", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2025-10-15T06:39:45.624+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-10-15T06:36:09.835+0300", + "instanceConfigDtUpdated": "2025-10-15T06:36:09.835+0300", + "instanceUid": "5e71c188-e989-42d7-89ff-cc623d04f066", + "displayName": "postgres-3", + "serviceId": 90, + "specificationItemId": 741, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "PostgreSQL", + "code": "paas.pg.0", + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "suspend", + "lastOperationUid": "591f06f0-c1b8-447b-ba0d-27274911a35c", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-01T13:34:32.200+0300", + "operationDtFinish": "2026-02-01T13:34:37.070+0300", + "duration": 4.9, + "uptime": 0, + "dtDeploy": "2026-02-01T13:34:37.070+0300", + "instanceStateUid": "3a6dfc6e-25e6-40ef-a30e-0534819e6e80", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/5e71c188-e989-42d7-89ff-cc623d04f066?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2025-10-15T06:40:50.060+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-10-15T09:56:50.381+0300", + "instanceConfigDtUpdated": "2025-10-15T09:56:50.381+0300", + "instanceUid": "a8100363-9467-44b2-be74-b20a2248a187", + "displayName": "s3bucket-4", + "serviceId": 13, + "specificationItemId": 743, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "S3 бакет", + "code": null, + "resourceRealmTypeId": 1, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "5b75bcab-722b-4c0f-af58-a45e0150d0f7", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-29T13:12:59.398+0300", + "operationDtFinish": "2026-01-29T13:13:05.448+0300", + "duration": 6.1, + "uptime": 0, + "dtDeploy": "2026-01-29T13:13:05.448+0300", + "instanceStateUid": "21f94277-bc9a-4d81-8fef-77cd1b15cc2a", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2025-10-15T09:57:06.962+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-21T20:32:48.421+0300", + "instanceConfigDtUpdated": "2026-01-21T20:32:48.421+0300", + "instanceUid": "04b5944f-9d34-4d3a-bfd7-2909d9ee36d5", + "displayName": "terraboy", + "serviceId": 1, + "specificationItemId": 1156, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "14ffb65d-2515-48e7-ac85-10473bcad3f5", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-21T20:57:07.893+0300", + "operationDtFinish": "2026-01-21T20:57:09.709+0300", + "duration": 1.8, + "uptime": 0, + "dtDeploy": "2026-01-21T20:57:09.709+0300", + "instanceStateUid": "62b9733a-dc37-485b-9cee-f8e0a467fad6", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-21T20:33:06.478+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-21T21:11:15.788+0300", + "instanceConfigDtUpdated": "2026-01-21T21:11:15.788+0300", + "instanceUid": "632c66b9-268b-4c1d-90d8-f8fb515c56ab", + "displayName": "terraform-test", + "serviceId": 1, + "specificationItemId": 1158, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "3699d0a6-5320-48bf-9c1c-787202d1ad0c", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-22T08:12:27.190+0300", + "operationDtFinish": "2026-01-22T08:12:28.651+0300", + "duration": 1.5, + "uptime": 0, + "dtDeploy": "2026-01-22T08:12:28.651+0300", + "instanceStateUid": "366df94f-12a1-493d-b4f4-3a99c8b095de", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-21T21:13:07.014+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-23T21:19:32.545+0300", + "instanceConfigDtUpdated": "2026-01-23T21:19:32.545+0300", + "instanceUid": "e3034741-5884-4ba4-b536-cc3444e4627d", + "displayName": "terraform-fullstack-vdc-20260123061931", + "serviceId": 21, + "specificationItemId": 1231, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Виртуальный датацентр (vDC)", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "8bd8e532-3491-4b19-826a-8390139f14d1", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-21T13:12:20.938+0300", + "operationDtFinish": "2026-02-21T13:12:25.093+0300", + "duration": 4.2, + "uptime": 0, + "dtDeploy": "2026-02-21T13:12:25.093+0300", + "instanceStateUid": "f69a4e6f-53b4-4871-9e23-cc33c9285727", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-01-24T21:49:03.393+0300", + "explainedStatus": "suspended", + "version": 3 + }, + { + "instanceConfigDtCreated": "2026-01-22T09:22:42.956+0300", + "instanceConfigDtUpdated": "2026-01-22T09:22:42.956+0300", + "instanceUid": "6c3a7195-96c4-4677-8d5d-b7e47fabada5", + "displayName": "Terraform", + "serviceId": 111, + "specificationItemId": 1161, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "9753039f-c28b-464e-8248-bb37d8d7771d", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-22T09:23:24.763+0300", + "operationDtFinish": "2026-01-22T09:23:47.358+0300", + "duration": 22.6, + "uptime": 3361214.888217, + "dtDeploy": "2026-01-22T09:23:47.358+0300", + "instanceStateUid": "574cf95b-9d2d-4c9a-93bc-60d9486c6783", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-01-22T09:23:46.667+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-24T06:07:33.280+0300", + "instanceConfigDtUpdated": "2026-01-24T06:07:33.280+0300", + "instanceUid": "e69247f7-68f1-43de-adcb-b212548b2bb1", + "displayName": "f12bolvanos", + "serviceId": 1, + "specificationItemId": 1247, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "7cf096ef-9979-4f20-81d2-a54983d2dc7f", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-24T06:07:42.985+0300", + "operationDtFinish": "2026-01-24T06:07:51.563+0300", + "duration": 8.6, + "uptime": 3200170.683217, + "dtDeploy": "2026-01-24T06:07:51.563+0300", + "instanceStateUid": "fe698cf7-bbce-4826-98a6-2c6af217d1ee", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-24T06:07:50.753+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-23T21:02:59.632+0300", + "instanceConfigDtUpdated": "2026-01-23T21:02:59.632+0300", + "instanceUid": "92d32358-b8b1-49f5-9f6f-bbc181483afd", + "displayName": "f12vapp-3", + "serviceId": 26, + "specificationItemId": 1227, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Виртуальный каталог ВМ (vApp)", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "98e0f2a5-c3e2-4a65-963e-2575719ede5f", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": true, + "operationDtStart": null, + "operationDtFinish": null, + "duration": null, + "uptime": 0, + "dtDeploy": null, + "instanceStateUid": "0a836af4-798c-4075-9a04-8241f238afc9", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-01-24T21:49:15.960+0300", + "explainedStatus": "suspended", + "version": 2 + }, + { + "instanceConfigDtCreated": "2026-01-25T09:51:37.108+0300", + "instanceConfigDtUpdated": "2026-01-25T09:51:37.108+0300", + "instanceUid": "de588d9d-d097-4758-a1e9-c08e71250391", + "displayName": "QuickTest-20260125065135", + "serviceId": 1, + "specificationItemId": 1287, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "79b643ba-8ab0-47cd-bc0e-7650bd4bd5d3", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-25T09:51:45.074+0300", + "operationDtFinish": "2026-01-25T09:51:53.538+0300", + "duration": 8.5, + "uptime": 3100328.708217, + "dtDeploy": "2026-01-25T09:51:53.538+0300", + "instanceStateUid": "3c611934-3795-4e66-935a-43970327b75f", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-25T09:51:52.724+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-22T18:49:20.954+0300", + "instanceConfigDtUpdated": "2026-01-22T18:49:20.954+0300", + "instanceUid": "d69ca7e8-86af-40cb-8901-4a615e6087bc", + "displayName": "ttt0", + "serviceId": 1, + "specificationItemId": 1164, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "2b486bde-864a-484b-b463-a9f6c0b9f96d", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-22T18:52:17.421+0300", + "operationDtFinish": "2026-01-22T18:52:26.889+0300", + "duration": 9.5, + "uptime": 3327095.357217, + "dtDeploy": "2026-01-22T18:52:26.889+0300", + "instanceStateUid": "e778772e-d37b-49dc-ad4b-8269e6103686", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-22T18:52:26.157+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-22T18:51:24.857+0300", + "instanceConfigDtUpdated": "2026-01-22T18:51:24.857+0300", + "instanceUid": "0906f325-9986-42e5-8fdf-73dd9f65b44f", + "displayName": "ttt0-terraform", + "serviceId": 1, + "specificationItemId": 1165, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "110b1ee8-070a-4ea9-9c00-1a9981929847", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-22T19:29:09.430+0300", + "operationDtFinish": "2026-01-22T19:29:15.911+0300", + "duration": 6.5, + "uptime": 0, + "dtDeploy": "2026-01-22T19:29:15.911+0300", + "instanceStateUid": "83f5c18e-a37a-4513-b12d-053346c9901a", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-22T18:55:30.150+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-10-20T13:11:44.800+0300", + "instanceConfigDtUpdated": "2025-10-20T13:11:44.800+0300", + "instanceUid": "dcb0127c-620c-4f87-8fa7-6660ca3b1bc8", + "displayName": "s3Bucket for (55c4914e-7bc5-4bcc-bc71-2444025bc6fc)", + "serviceId": 13, + "specificationItemId": 815, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "S3 бакет", + "code": null, + "resourceRealmTypeId": 1, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "0945f36f-87a5-460f-8ab3-6820d5d9f242", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2025-10-20T13:11:53.295+0300", + "operationDtFinish": "2025-10-20T13:12:13.460+0300", + "duration": 20.2, + "uptime": 11469108.786217, + "dtDeploy": "2025-10-20T13:12:13.460+0300", + "instanceStateUid": "0b314517-3b94-4cbb-9ea8-39f97b3c54ed", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2025-10-20T13:12:12.491+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-10-20T13:12:22.261+0300", + "instanceConfigDtUpdated": "2025-10-20T13:12:22.261+0300", + "instanceUid": "edb88b5c-af1e-4499-9392-e1b8fbca2558", + "displayName": "A-record (pearlharbor.registryk8s)", + "serviceId": 111, + "specificationItemId": 816, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "f3711e75-30e9-4b70-ba4b-d80d39bb0c43", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2025-10-20T13:12:30.792+0300", + "operationDtFinish": "2025-10-20T13:12:46.367+0300", + "duration": 15.6, + "uptime": 11469075.879217, + "dtDeploy": "2025-10-20T13:12:46.367+0300", + "instanceStateUid": "b862a2e6-aa9e-41e9-acaa-6fd69f822ed1", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2025-10-20T13:12:45.725+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-10-29T17:21:07.419+0300", + "instanceConfigDtUpdated": "2025-10-29T17:21:07.419+0300", + "instanceUid": "c1895a53-a8b1-4255-81da-c1225bf890d6", + "displayName": "keycloak", + "serviceId": 111, + "specificationItemId": 847, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "3b97d421-6491-4d02-8425-250e1310435f", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2025-10-29T17:21:14.788+0300", + "operationDtFinish": "2025-10-29T17:21:31.861+0300", + "duration": 17.1, + "uptime": 10676550.385217, + "dtDeploy": "2025-10-29T17:21:31.861+0300", + "instanceStateUid": "a4868744-3927-4676-bb43-72893437bf9d", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2025-10-29T17:21:31.091+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-22T18:54:49.235+0300", + "instanceConfigDtUpdated": "2026-01-22T18:54:49.235+0300", + "instanceUid": "2f9a0b2c-7bd2-4c5b-a764-e6bbdb744404", + "displayName": "ttt0-terraform-v2", + "serviceId": 1, + "specificationItemId": 1166, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "757ec0e9-10ba-404f-84a6-326a3ff9b6ed", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-22T19:14:00.846+0300", + "operationDtFinish": "2026-01-22T19:14:02.511+0300", + "duration": 1.7, + "uptime": 0, + "dtDeploy": "2026-01-22T19:14:02.511+0300", + "instanceStateUid": "7c8ed635-2b27-42fd-ab26-408d4e3b8337", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-22T19:06:00.083+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-10-20T13:11:22.229+0300", + "instanceConfigDtUpdated": "2025-10-20T13:11:22.229+0300", + "instanceUid": "55c4914e-7bc5-4bcc-bc71-2444025bc6fc", + "displayName": "pearlharbor", + "serviceId": 82, + "specificationItemId": 814, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Container Registry", + "code": null, + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "be15e4a6-630e-4803-98b1-7d5a07909cc1", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2025-10-20T13:11:31.114+0300", + "operationDtFinish": "2025-10-20T13:15:32.132+0300", + "duration": 241, + "uptime": 11468910.114217, + "dtDeploy": "2025-10-20T13:15:32.132+0300", + "instanceStateUid": "33005d89-3f58-4ad8-a507-1fd5a510f712", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/55c4914e-7bc5-4bcc-bc71-2444025bc6fc?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2025-10-20T13:15:30.049+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-22T19:18:56.058+0300", + "instanceConfigDtUpdated": "2026-01-22T19:18:56.058+0300", + "instanceUid": "37e7a813-a518-4ca4-9a08-6609188b3ffb", + "displayName": "ttt0-terraform-v14", + "serviceId": 1, + "specificationItemId": 1178, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "037ae766-8275-43bc-9a2e-5825ca94d1df", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-22T19:19:05.531+0300", + "operationDtFinish": "2026-01-22T19:19:15.364+0300", + "duration": 9.8, + "uptime": 3325486.882217, + "dtDeploy": "2026-01-22T19:19:15.364+0300", + "instanceStateUid": "d4ba892b-5bdf-4d39-99fc-4229d8cef8a8", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-22T19:19:14.686+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-25T09:28:57.230+0300", + "instanceConfigDtUpdated": "2026-01-25T09:28:57.230+0300", + "instanceUid": "48475ea2-cbfc-4250-b6ab-1afc0825cafd", + "displayName": "f12-dummy-2311", + "serviceId": 1, + "specificationItemId": 1283, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "574a20bb-7c57-43f8-ab2d-0a77339ab959", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-25T09:29:04.562+0300", + "operationDtFinish": "2026-01-25T09:29:13.896+0300", + "duration": 9.3, + "uptime": 3101688.350217, + "dtDeploy": "2026-01-25T09:29:13.896+0300", + "instanceStateUid": "e42e93e0-712e-4254-ab72-e07526e86455", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-25T09:29:13.013+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-22T19:20:08.340+0300", + "instanceConfigDtUpdated": "2026-01-22T19:20:08.340+0300", + "instanceUid": "c1931bf2-ea98-4ca3-ab6e-ea8846154c14", + "displayName": "ttt0-terraform-v15", + "serviceId": 1, + "specificationItemId": 1180, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "0d6558dd-c291-4051-93cd-090d98bd5bbb", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-22T19:20:18.095+0300", + "operationDtFinish": "2026-01-22T19:20:26.874+0300", + "duration": 8.8, + "uptime": 3325415.372217, + "dtDeploy": "2026-01-22T19:20:26.874+0300", + "instanceStateUid": "8101ff95-0af8-405c-bbe9-f69661202b88", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-22T19:20:26.035+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-24T16:41:25.932+0300", + "instanceConfigDtUpdated": "2026-01-24T16:41:25.932+0300", + "instanceUid": "f95a3390-49b1-4a43-ac53-af4be0ae5fc2", + "displayName": "S3-Bucket (technicals3backup-e2b5c211-5b2b-43f0-ad28-cac3b87d4df7)", + "serviceId": 13, + "specificationItemId": 1278, + "isAuxiliary": true, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "S3 бакет", + "code": null, + "resourceRealmTypeId": 1, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "6d3009f9-11cf-41e1-9b6b-456f3d40b281", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-12T14:49:39.621+0300", + "operationDtFinish": "2026-02-12T14:50:01.747+0300", + "duration": 22.1, + "uptime": 0, + "dtDeploy": "2026-02-12T14:50:01.747+0300", + "instanceStateUid": "608e53a8-7b45-4158-a4d0-75de6b3062d6", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-01-24T16:41:52.742+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-10-16T17:12:25.443+0300", + "instanceConfigDtUpdated": "2025-10-16T17:12:25.443+0300", + "instanceUid": "f8bb2525-797e-428f-937a-d16e613f10af", + "displayName": "postgres-NoSSL", + "serviceId": 90, + "specificationItemId": 789, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "PostgreSQL", + "code": "paas.pg.0", + "resourceRealmTypeId": 3, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "recovery", + "lastOperationUid": "973f1c3f-9078-4dae-9518-d6733300c1c0", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-22T12:24:33.890+0300", + "operationDtFinish": "2026-02-22T12:25:40.967+0300", + "duration": 67.1, + "uptime": 0, + "dtDeploy": "2026-02-22T12:25:40.967+0300", + "instanceStateUid": "231b5175-61b7-4d53-8232-bab9189c7d83", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": false, + "monitoringUrl": "https://grafana.ngcloud.ru/dashboards/f/f8bb2525-797e-428f-937a-d16e613f10af?orgId=28", + "resourceRealm": "k8s-3.ext.nubes.ru", + "dtState": "2025-10-21T20:59:41.133+0300", + "explainedStatus": "suspended", + "version": 8 + }, + { + "instanceConfigDtCreated": "2026-01-22T19:20:37.106+0300", + "instanceConfigDtUpdated": "2026-01-22T19:20:37.106+0300", + "instanceUid": "41d43664-ae4b-4e06-a535-e11e39b3b091", + "displayName": "ttst00", + "serviceId": 1, + "specificationItemId": 1181, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "dbb3ea10-bb0e-4b9a-a980-916f4fdd31bf", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-22T19:32:35.650+0300", + "operationDtFinish": "2026-01-22T19:32:37.634+0300", + "duration": 2, + "uptime": 0, + "dtDeploy": "2026-01-22T19:32:37.634+0300", + "instanceStateUid": "e74941e3-863f-40cd-b9ea-94421406e0fc", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-22T19:30:37.808+0300", + "explainedStatus": "running", + "version": 2 + }, + { + "instanceConfigDtCreated": "2026-01-22T19:40:25.123+0300", + "instanceConfigDtUpdated": "2026-01-22T19:40:25.123+0300", + "instanceUid": "a7e5d218-bdff-4e54-b480-31556f6e4a15", + "displayName": "To Be Modified", + "serviceId": 1, + "specificationItemId": 1182, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "modify", + "lastOperationUid": "1096a5b5-095c-4346-9e01-43472a7dadeb", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-22T19:41:27.864+0300", + "operationDtFinish": "2026-01-22T19:41:42.054+0300", + "duration": 14.2, + "uptime": 3324140.192217, + "dtDeploy": "2026-01-22T19:41:42.054+0300", + "instanceStateUid": "315f282c-a04d-42c8-af56-e12d1d377bdb", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-22T19:41:41.224+0300", + "explainedStatus": "running", + "version": 2 + }, + { + "instanceConfigDtCreated": "2026-01-22T19:40:25.223+0300", + "instanceConfigDtUpdated": "2026-01-22T19:40:25.223+0300", + "instanceUid": "d52cc072-e39d-49d8-9fed-6891d7cb5898", + "displayName": "To Be Deleted", + "serviceId": 1, + "specificationItemId": 1183, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "e2b4eea7-09e2-4da7-8692-1b1ade100463", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-23T20:11:25.412+0300", + "operationDtFinish": "2026-01-23T20:11:27.157+0300", + "duration": 1.7, + "uptime": 0, + "dtDeploy": "2026-01-23T20:11:27.157+0300", + "instanceStateUid": "264544bd-7fc3-4c5d-b25e-073bae0a4be8", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-22T19:41:27.183+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-24T19:37:16.752+0300", + "instanceConfigDtUpdated": "2026-01-24T19:37:16.752+0300", + "instanceUid": "4647b83d-d768-43b4-bdd6-4a818cdb2cfe", + "displayName": "AI Bolvanka", + "serviceId": 1, + "specificationItemId": 1279, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "f1d102f6-af9a-447f-b3d2-f45177f9ba88", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-24T19:37:26.460+0300", + "operationDtFinish": "2026-01-24T19:37:35.602+0300", + "duration": 9.1, + "uptime": 3151586.644217, + "dtDeploy": "2026-01-24T19:37:35.602+0300", + "instanceStateUid": "f7788f68-b368-4a9f-a4ad-8d8d1ca46b45", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-24T19:37:34.753+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-23T23:38:32.211+0300", + "instanceConfigDtUpdated": "2026-01-23T23:38:32.211+0300", + "instanceUid": "7996ca02-906b-4538-a344-9fd67d554909", + "displayName": "test-vdc-fix-20260123083831", + "serviceId": 21, + "specificationItemId": 1246, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Виртуальный датацентр (vDC)", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "d8e1b270-cde7-4148-97fd-8e0ba2db678a", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-16T17:43:01.432+0300", + "operationDtFinish": "2026-02-16T17:43:09.440+0300", + "duration": 8, + "uptime": 0, + "dtDeploy": "2026-02-16T17:43:09.440+0300", + "instanceStateUid": "6edd5a9c-ed95-4475-9734-4838bc058a68", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-01-24T06:57:56.806+0300", + "explainedStatus": "suspended", + "version": 4 + }, + { + "instanceConfigDtCreated": "2026-01-23T23:24:38.243+0300", + "instanceConfigDtUpdated": "2026-01-23T23:24:38.243+0300", + "instanceUid": "a2431648-77e3-49b2-82bd-925602f462bf", + "displayName": "test-vdc-fix-20260123082437", + "serviceId": 21, + "specificationItemId": 1245, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Виртуальный датацентр (vDC)", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "83fcb67e-6a64-41bc-985c-182eb8335b1e", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-21T13:10:50.822+0300", + "operationDtFinish": "2026-02-21T13:10:55.245+0300", + "duration": 4.4, + "uptime": 0, + "dtDeploy": "2026-02-21T13:10:55.245+0300", + "instanceStateUid": "37b2dcb2-65b7-4497-bdfc-6e96c7441ce0", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-01-24T06:58:15.520+0300", + "explainedStatus": "suspended", + "version": 3 + }, + { + "instanceConfigDtCreated": "2026-01-23T23:15:06.604+0300", + "instanceConfigDtUpdated": "2026-01-23T23:15:06.604+0300", + "instanceUid": "eb2d0ebe-e0fc-4f70-8c73-8f204c8a05a0", + "displayName": "test-vdc-fix-20260123081505", + "serviceId": 21, + "specificationItemId": 1244, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Виртуальный датацентр (vDC)", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "d5f671fc-6d6e-4868-ad73-f77b7a514040", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-21T13:11:01.088+0300", + "operationDtFinish": "2026-02-21T13:11:04.935+0300", + "duration": 3.8, + "uptime": 0, + "dtDeploy": "2026-02-21T13:11:04.935+0300", + "instanceStateUid": "df120448-1eca-4488-bdf7-0d1860dd8bd7", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-01-24T06:58:29.030+0300", + "explainedStatus": "suspended", + "version": 3 + }, + { + "instanceConfigDtCreated": "2026-01-23T23:06:40.614+0300", + "instanceConfigDtUpdated": "2026-01-23T23:06:40.614+0300", + "instanceUid": "6dd644c2-030a-4b06-959f-3287ae970a31", + "displayName": "test-vdc-fix-20260123080639", + "serviceId": 21, + "specificationItemId": 1243, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Виртуальный датацентр (vDC)", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "a1fdd094-8cda-4fb5-850d-d36eba184d9d", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-21T13:11:17.156+0300", + "operationDtFinish": "2026-02-21T13:11:21.627+0300", + "duration": 4.5, + "uptime": 0, + "dtDeploy": "2026-02-21T13:11:21.627+0300", + "instanceStateUid": "95abfb92-f4a4-4a34-8da8-fce62beae163", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-01-24T06:58:44.399+0300", + "explainedStatus": "suspended", + "version": 3 + }, + { + "instanceConfigDtCreated": "2026-01-23T22:36:25.573+0300", + "instanceConfigDtUpdated": "2026-01-23T22:36:25.573+0300", + "instanceUid": "6e2ae6d9-99a2-4a91-ace0-c3cff0c8ba9b", + "displayName": "test-vdc-20260123073624", + "serviceId": 21, + "specificationItemId": 1242, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Виртуальный датацентр (vDC)", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "01c15bb4-a3dc-4061-af36-c79fb6bd8542", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-17T07:26:15.350+0300", + "operationDtFinish": "2026-02-17T07:26:19.685+0300", + "duration": 4.3, + "uptime": 0, + "dtDeploy": "2026-02-17T07:26:19.685+0300", + "instanceStateUid": "4e470672-0dc2-400e-bf85-80f359a00eac", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-01-24T06:59:02.059+0300", + "explainedStatus": "suspended", + "version": 3 + }, + { + "instanceConfigDtCreated": "2026-01-23T22:33:10.470+0300", + "instanceConfigDtUpdated": "2026-01-23T22:33:10.470+0300", + "instanceUid": "99342c70-faf6-4377-b183-4d9c99d702ca", + "displayName": "test-vdc-20260123073308", + "serviceId": 21, + "specificationItemId": 1241, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Виртуальный датацентр (vDC)", + "code": null, + "resourceRealmTypeId": 2, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "9f5f4774-e2aa-469e-a71f-f92dd463937b", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-02-18T15:57:04.938+0300", + "operationDtFinish": "2026-02-18T15:57:10.545+0300", + "duration": 5.6, + "uptime": 0, + "dtDeploy": "2026-02-18T15:57:10.545+0300", + "instanceStateUid": "1ab178b2-4275-499c-bdbb-e7b18cf512c1", + "isTest": true, + "isDeleted": false, + "isSuspended": true, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2026-01-24T06:59:14.067+0300", + "explainedStatus": "suspended", + "version": 3 + }, + { + "instanceConfigDtCreated": "2026-01-22T21:08:51.187+0300", + "instanceConfigDtUpdated": "2026-01-22T21:08:51.187+0300", + "instanceUid": "f6ff074d-f3af-4b44-93fd-73fc617bc1bb", + "displayName": "Bolvanka Full Test", + "serviceId": 1, + "specificationItemId": 1185, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "575414de-7855-4e1b-a0d4-bfbfdf29fc39", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-23T20:10:51.778+0300", + "operationDtFinish": "2026-01-23T20:10:53.655+0300", + "duration": 1.9, + "uptime": 0, + "dtDeploy": "2026-01-23T20:10:53.655+0300", + "instanceStateUid": "a75a6bd0-8938-45a1-817e-8ca7708fea55", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-22T21:09:10.338+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2025-11-21T09:14:38.560+0300", + "instanceConfigDtUpdated": "2025-11-21T09:14:38.560+0300", + "instanceUid": "0a74f641-e520-4042-91df-a7231d3cdf1d", + "displayName": "nifi", + "serviceId": 111, + "specificationItemId": 945, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "DNS запись", + "code": null, + "resourceRealmTypeId": 4, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "create", + "lastOperationUid": "8d1ed34c-521f-42f2-9543-4cc954e80d28", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2025-11-21T09:14:46.682+0300", + "operationDtFinish": "2025-11-21T09:15:03.786+0300", + "duration": 17.1, + "uptime": 8718538.460217, + "dtDeploy": "2025-11-21T09:15:03.786+0300", + "instanceStateUid": "677ce4e5-7359-4fe8-a5a4-7416fa583b1b", + "isTest": true, + "isDeleted": false, + "isSuspended": null, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": null, + "dtState": "2025-11-21T09:15:03.031+0300", + "explainedStatus": "running", + "version": 1 + }, + { + "instanceConfigDtCreated": "2026-01-22T19:40:39.064+0300", + "instanceConfigDtUpdated": "2026-01-22T19:40:39.064+0300", + "instanceUid": "716fb257-4235-493c-9e00-afe2fc62ddac", + "displayName": "Newly Added", + "serviceId": 1, + "specificationItemId": 1184, + "isAuxiliary": false, + "contractId": 4, + "specificationId": 4, + "specification": "2", + "svc": "Болванка", + "code": null, + "resourceRealmTypeId": 7, + "updaterId": 7594, + "updaterLogin": "tazet@narod.ru", + "updaterShortname": " Н. Ф.", + "lastOperation": "delete", + "lastOperationUid": "dfe3962a-18bb-41f2-8f63-a244e5d15eb1", + "submitResult": "201", + "operationIsInProgress": false, + "operationIsPending": false, + "operationDtStart": "2026-01-23T20:11:05.387+0300", + "operationDtFinish": "2026-01-23T20:11:06.843+0300", + "duration": 1.5, + "uptime": 0, + "dtDeploy": "2026-01-23T20:11:06.843+0300", + "instanceStateUid": "3dcab4ed-0b49-449e-87ba-665b398db921", + "isTest": true, + "isDeleted": false, + "isSuspended": false, + "jobIsPending": null, + "monitoringUrl": null, + "resourceRealm": "dummy", + "dtState": "2026-01-22T21:09:23.213+0300", + "explainedStatus": "running", + "version": 4 + } +] \ No newline at end of file diff --git a/artifacts/output_inventory/running_suspended_output_fields_for_docs.json b/artifacts/output_inventory/running_suspended_output_fields_for_docs.json new file mode 100644 index 0000000..4ade44f --- /dev/null +++ b/artifacts/output_inventory/running_suspended_output_fields_for_docs.json @@ -0,0 +1,636 @@ +[ + { + "serviceId": 1, + "serviceName": "Болванка", + "instances": 39, + "statuses": { + "running": 36, + "suspended": 3 + }, + "out_paths": [], + "vault_fields": [ + "someKey" + ], + "tf_reference_examples": { + "state_out_flat": [], + "vault_secrets": [ + "vault_secrets[\"someKey\"]" + ] + } + }, + { + "serviceId": 12, + "serviceName": "S3 Object Storage", + "instances": 1, + "statuses": { + "running": 1 + }, + "out_paths": [ + "dtEndTrial", + "dtStartTrial", + "isTrial", + "monitoring", + "monitoring.allDashboards", + "monitoring.s3ceph", + "monitoring.s3ceph.url", + "urlConnect" + ], + "vault_fields": [ + "1325_access_key", + "1325_secret_key", + "1325_technicalS3Backup_access_key", + "1325_technicalS3Backup_secret_key" + ], + "tf_reference_examples": { + "state_out_flat": [ + "state_out_flat[\"monitoring.allDashboards\"]", + "state_out_flat[\"monitoring.s3ceph\"]", + "state_out_flat[\"monitoring.s3ceph.url\"]" + ], + "vault_secrets": [ + "vault_secrets[\"1325_access_key\"]", + "vault_secrets[\"1325_secret_key\"]", + "vault_secrets[\"1325_technicalS3Backup_access_key\"]", + "vault_secrets[\"1325_technicalS3Backup_secret_key\"]" + ] + } + }, + { + "serviceId": 13, + "serviceName": "S3 бакет", + "instances": 21, + "statuses": { + "running": 21 + }, + "out_paths": [ + "httpConnect" + ], + "vault_fields": [], + "tf_reference_examples": { + "state_out_flat": [], + "vault_secrets": [] + } + }, + { + "serviceId": 19, + "serviceName": "Организация в Cloud Director", + "instances": 1, + "statuses": { + "running": 1 + }, + "out_paths": [ + "urlConnect" + ], + "vault_fields": [], + "tf_reference_examples": { + "state_out_flat": [], + "vault_secrets": [] + } + }, + { + "serviceId": 21, + "serviceName": "Виртуальный датацентр (vDC)", + "instances": 13, + "statuses": { + "running": 1, + "suspended": 12 + }, + "out_paths": [ + "vdcName" + ], + "vault_fields": [], + "tf_reference_examples": { + "state_out_flat": [], + "vault_secrets": [] + } + }, + { + "serviceId": 25, + "serviceName": "Публичные IP адреса", + "instances": 6, + "statuses": { + "running": 6 + }, + "out_paths": [ + "externalIp" + ], + "vault_fields": [], + "tf_reference_examples": { + "state_out_flat": [], + "vault_secrets": [] + } + }, + { + "serviceId": 26, + "serviceName": "Виртуальный каталог ВМ (vApp)", + "instances": 1, + "statuses": { + "suspended": 1 + }, + "out_paths": [], + "vault_fields": [], + "tf_reference_examples": { + "state_out_flat": [], + "vault_secrets": [] + } + }, + { + "serviceId": 28, + "serviceName": "Виртуальная машина", + "instances": 9, + "statuses": { + "suspended": 9 + }, + "out_paths": [ + "externalConnect", + "fqdn", + "internalConnect" + ], + "vault_fields": [], + "tf_reference_examples": { + "state_out_flat": [], + "vault_secrets": [] + } + }, + { + "serviceId": 82, + "serviceName": "Container Registry", + "instances": 1, + "statuses": { + "running": 1 + }, + "out_paths": [ + "connectionUrl", + "monitoring", + "monitoring.allDashboards", + "monitoring.base", + "monitoring.base.url", + "monitoring.k8sregistry", + "monitoring.k8sregistry.url", + "monitoring.loki", + "monitoring.loki.url" + ], + "vault_fields": [ + "adminPass" + ], + "tf_reference_examples": { + "state_out_flat": [ + "state_out_flat[\"monitoring.allDashboards\"]", + "state_out_flat[\"monitoring.base\"]", + "state_out_flat[\"monitoring.base.url\"]", + "state_out_flat[\"monitoring.k8sregistry\"]", + "state_out_flat[\"monitoring.k8sregistry.url\"]", + "state_out_flat[\"monitoring.loki\"]", + "state_out_flat[\"monitoring.loki.url\"]" + ], + "vault_secrets": [ + "vault_secrets[\"adminPass\"]" + ] + } + }, + { + "serviceId": 90, + "serviceName": "PostgreSQL", + "instances": 11, + "statuses": { + "running": 5, + "suspended": 6 + }, + "out_paths": [ + "externalConnect", + "externalConnect.master", + "externalConnect.master.fqdn", + "externalConnect.master.ip", + "externalConnect.master.isExternal", + "externalConnect.master.uuid", + "externalConnect.slave", + "externalConnect.slave.fqdn", + "externalConnect.slave.ip", + "externalConnect.slave.isExternal", + "externalConnect.slave.uuid", + "internalConnect", + "internalConnect.master", + "internalConnect.slave", + "monitoring", + "monitoring.allDashboards", + "monitoring.base", + "monitoring.base.url", + "monitoring.k8spostgresql", + "monitoring.k8spostgresql.url", + "monitoring.k8spostgresqlbackup", + "monitoring.k8spostgresqlbackup.url", + "monitoring.loki", + "monitoring.loki.url" + ], + "vault_fields": [ + "adminPass", + "adminUser", + "standbyPass", + "standbyUser" + ], + "tf_reference_examples": { + "state_out_flat": [ + "state_out_flat[\"externalConnect.master\"]", + "state_out_flat[\"externalConnect.master.fqdn\"]", + "state_out_flat[\"externalConnect.master.ip\"]", + "state_out_flat[\"externalConnect.master.isExternal\"]", + "state_out_flat[\"externalConnect.master.uuid\"]", + "state_out_flat[\"externalConnect.slave\"]", + "state_out_flat[\"externalConnect.slave.fqdn\"]", + "state_out_flat[\"externalConnect.slave.ip\"]", + "state_out_flat[\"externalConnect.slave.isExternal\"]", + "state_out_flat[\"externalConnect.slave.uuid\"]", + "state_out_flat[\"internalConnect.master\"]", + "state_out_flat[\"internalConnect.slave\"]", + "state_out_flat[\"monitoring.allDashboards\"]", + "state_out_flat[\"monitoring.base\"]", + "state_out_flat[\"monitoring.base.url\"]", + "state_out_flat[\"monitoring.k8spostgresql\"]", + "state_out_flat[\"monitoring.k8spostgresql.url\"]", + "state_out_flat[\"monitoring.k8spostgresqlbackup\"]", + "state_out_flat[\"monitoring.k8spostgresqlbackup.url\"]", + "state_out_flat[\"monitoring.loki\"]", + "state_out_flat[\"monitoring.loki.url\"]" + ], + "vault_secrets": [ + "vault_secrets[\"adminPass\"]", + "vault_secrets[\"adminUser\"]", + "vault_secrets[\"standbyPass\"]", + "vault_secrets[\"standbyUser\"]" + ] + } + }, + { + "serviceId": 92, + "serviceName": "MongoDB", + "instances": 1, + "statuses": { + "suspended": 1 + }, + "out_paths": [ + "internalConnect", + "monitoring", + "monitoring.allDashboards", + "monitoring.base", + "monitoring.base.url", + "monitoring.loki", + "monitoring.loki.url" + ], + "vault_fields": [], + "tf_reference_examples": { + "state_out_flat": [ + "state_out_flat[\"monitoring.allDashboards\"]", + "state_out_flat[\"monitoring.base\"]", + "state_out_flat[\"monitoring.base.url\"]", + "state_out_flat[\"monitoring.loki\"]", + "state_out_flat[\"monitoring.loki.url\"]" + ], + "vault_secrets": [] + } + }, + { + "serviceId": 93, + "serviceName": "RabbitMQ", + "instances": 2, + "statuses": { + "running": 1, + "suspended": 1 + }, + "out_paths": [ + "clusterDomain", + "externalConnect", + "externalConnect.admin", + "externalConnect.admin.fqdn", + "externalConnect.admin.ip", + "externalConnect.admin.isExternal", + "externalConnect.admin.uuid", + "inernalConnect", + "inernalConnect.master", + "inernalConnect.slave", + "monitoring", + "monitoring.allDashboards", + "monitoring.base", + "monitoring.base.url", + "monitoring.loki", + "monitoring.loki.url" + ], + "vault_fields": [ + "adminPass", + "adminUser" + ], + "tf_reference_examples": { + "state_out_flat": [ + "state_out_flat[\"externalConnect.admin\"]", + "state_out_flat[\"externalConnect.admin.fqdn\"]", + "state_out_flat[\"externalConnect.admin.ip\"]", + "state_out_flat[\"externalConnect.admin.isExternal\"]", + "state_out_flat[\"externalConnect.admin.uuid\"]", + "state_out_flat[\"inernalConnect.master\"]", + "state_out_flat[\"inernalConnect.slave\"]", + "state_out_flat[\"monitoring.allDashboards\"]", + "state_out_flat[\"monitoring.base\"]", + "state_out_flat[\"monitoring.base.url\"]", + "state_out_flat[\"monitoring.loki\"]", + "state_out_flat[\"monitoring.loki.url\"]" + ], + "vault_secrets": [ + "vault_secrets[\"adminPass\"]", + "vault_secrets[\"adminUser\"]" + ] + } + }, + { + "serviceId": 94, + "serviceName": "Lucee", + "instances": 6, + "statuses": { + "running": 2, + "suspended": 4 + }, + "out_paths": [ + "connectionUrl", + "monitoring", + "monitoring.allDashboards", + "monitoring.base", + "monitoring.base.url", + "monitoring.loki", + "monitoring.loki.url" + ], + "vault_fields": [], + "tf_reference_examples": { + "state_out_flat": [ + "state_out_flat[\"monitoring.allDashboards\"]", + "state_out_flat[\"monitoring.base\"]", + "state_out_flat[\"monitoring.base.url\"]", + "state_out_flat[\"monitoring.loki\"]", + "state_out_flat[\"monitoring.loki.url\"]" + ], + "vault_secrets": [] + } + }, + { + "serviceId": 95, + "serviceName": "NodeJS", + "instances": 5, + "statuses": { + "running": 2, + "suspended": 3 + }, + "out_paths": [ + "connectionUrl", + "monitoring", + "monitoring.allDashboards", + "monitoring.base", + "monitoring.base.url", + "monitoring.loki", + "monitoring.loki.url" + ], + "vault_fields": [], + "tf_reference_examples": { + "state_out_flat": [ + "state_out_flat[\"monitoring.allDashboards\"]", + "state_out_flat[\"monitoring.base\"]", + "state_out_flat[\"monitoring.base.url\"]", + "state_out_flat[\"monitoring.loki\"]", + "state_out_flat[\"monitoring.loki.url\"]" + ], + "vault_secrets": [] + } + }, + { + "serviceId": 96, + "serviceName": "pgAdmin", + "instances": 4, + "statuses": { + "running": 2, + "suspended": 2 + }, + "out_paths": [ + "connectionUrl", + "monitoring", + "monitoring.allDashboards", + "monitoring.base", + "monitoring.base.url", + "monitoring.loki", + "monitoring.loki.url" + ], + "vault_fields": [], + "tf_reference_examples": { + "state_out_flat": [ + "state_out_flat[\"monitoring.allDashboards\"]", + "state_out_flat[\"monitoring.base\"]", + "state_out_flat[\"monitoring.base.url\"]", + "state_out_flat[\"monitoring.loki\"]", + "state_out_flat[\"monitoring.loki.url\"]" + ], + "vault_secrets": [] + } + }, + { + "serviceId": 98, + "serviceName": "Простой HTTP контейнер", + "instances": 2, + "statuses": { + "suspended": 2 + }, + "out_paths": [ + "connectionUrl", + "monitoring", + "monitoring.allDashboards", + "monitoring.base", + "monitoring.base.url", + "monitoring.loki", + "monitoring.loki.url" + ], + "vault_fields": [], + "tf_reference_examples": { + "state_out_flat": [ + "state_out_flat[\"monitoring.allDashboards\"]", + "state_out_flat[\"monitoring.base\"]", + "state_out_flat[\"monitoring.base.url\"]", + "state_out_flat[\"monitoring.loki\"]", + "state_out_flat[\"monitoring.loki.url\"]" + ], + "vault_secrets": [] + } + }, + { + "serviceId": 99, + "serviceName": "Gitea", + "instances": 1, + "statuses": { + "running": 1 + }, + "out_paths": [ + "connectionUrl", + "monitoring", + "monitoring.allDashboards", + "monitoring.base", + "monitoring.base.url", + "monitoring.loki", + "monitoring.loki.url" + ], + "vault_fields": [ + "adminPass", + "adminUser" + ], + "tf_reference_examples": { + "state_out_flat": [ + "state_out_flat[\"monitoring.allDashboards\"]", + "state_out_flat[\"monitoring.base\"]", + "state_out_flat[\"monitoring.base.url\"]", + "state_out_flat[\"monitoring.loki\"]", + "state_out_flat[\"monitoring.loki.url\"]" + ], + "vault_secrets": [ + "vault_secrets[\"adminPass\"]", + "vault_secrets[\"adminUser\"]" + ] + } + }, + { + "serviceId": 110, + "serviceName": "DNS зона", + "instances": 2, + "statuses": { + "running": 2 + }, + "out_paths": [ + "dnsServers", + "dnsServers.ns1.nubes.ru", + "dnsServers.ns2.nubes.ru", + "zoneSerial", + "zoneSoaServer" + ], + "vault_fields": [], + "tf_reference_examples": { + "state_out_flat": [ + "state_out_flat[\"dnsServers.ns1.nubes.ru\"]", + "state_out_flat[\"dnsServers.ns2.nubes.ru\"]" + ], + "vault_secrets": [] + } + }, + { + "serviceId": 111, + "serviceName": "DNS запись", + "instances": 35, + "statuses": { + "running": 35 + }, + "out_paths": [ + "dnsServers", + "record" + ], + "vault_fields": [], + "tf_reference_examples": { + "state_out_flat": [], + "vault_secrets": [] + } + }, + { + "serviceId": 116, + "serviceName": "ApacheKafka", + "instances": 2, + "statuses": { + "running": 1, + "suspended": 1 + }, + "out_paths": [ + "externalConnect", + "externalConnect.bootstrap", + "externalConnect.bootstrap.fqdn", + "externalConnect.bootstrap.ip", + "externalConnect.bootstrap.isExternal", + "externalConnect.bootstrap.uuid", + "internalConnect", + "kafkaTopics", + "kafkaTopics.test-events", + "kafkaTopics.test-events.partitions", + "kafkaTopics.test-events.replicas", + "kafkaUsers", + "kafkaUsers.usertest", + "kafkaUsers.usertest.accessHosts", + "kafkaUsers.usertest.group", + "kafkaUsers.usertest.nameTopic", + "kafkaUsers.usertest.operations", + "monitoring", + "monitoring.allDashboards", + "monitoring.base", + "monitoring.base.url", + "monitoring.loki", + "monitoring.loki.url" + ], + "vault_fields": [ + "users" + ], + "tf_reference_examples": { + "state_out_flat": [ + "state_out_flat[\"externalConnect.bootstrap\"]", + "state_out_flat[\"externalConnect.bootstrap.fqdn\"]", + "state_out_flat[\"externalConnect.bootstrap.ip\"]", + "state_out_flat[\"externalConnect.bootstrap.isExternal\"]", + "state_out_flat[\"externalConnect.bootstrap.uuid\"]", + "state_out_flat[\"kafkaTopics.test-events\"]", + "state_out_flat[\"kafkaTopics.test-events.partitions\"]", + "state_out_flat[\"kafkaTopics.test-events.replicas\"]", + "state_out_flat[\"kafkaUsers.usertest\"]", + "state_out_flat[\"kafkaUsers.usertest.accessHosts\"]", + "state_out_flat[\"kafkaUsers.usertest.group\"]", + "state_out_flat[\"kafkaUsers.usertest.nameTopic\"]", + "state_out_flat[\"kafkaUsers.usertest.operations\"]", + "state_out_flat[\"monitoring.allDashboards\"]", + "state_out_flat[\"monitoring.base\"]", + "state_out_flat[\"monitoring.base.url\"]", + "state_out_flat[\"monitoring.loki\"]", + "state_out_flat[\"monitoring.loki.url\"]" + ], + "vault_secrets": [ + "vault_secrets[\"users\"]" + ] + } + }, + { + "serviceId": 119, + "serviceName": "Akhq", + "instances": 3, + "statuses": { + "suspended": 3 + }, + "out_paths": [ + "connectionUrl" + ], + "vault_fields": [ + "pass", + "user" + ], + "tf_reference_examples": { + "state_out_flat": [], + "vault_secrets": [ + "vault_secrets[\"pass\"]", + "vault_secrets[\"user\"]" + ] + } + }, + { + "serviceId": 150, + "serviceName": "Kubernetes кластер Штурвал", + "instances": 1, + "statuses": { + "running": 1 + }, + "out_paths": [ + "ingressAddress", + "kubernetesApiAddress" + ], + "vault_fields": [ + "kubernetesAdminConfigB64" + ], + "tf_reference_examples": { + "state_out_flat": [], + "vault_secrets": [ + "vault_secrets[\"kubernetesAdminConfigB64\"]" + ] + } + } +] \ No newline at end of file diff --git a/artifacts/output_inventory/running_suspended_outputs_by_service.json b/artifacts/output_inventory/running_suspended_outputs_by_service.json new file mode 100644 index 0000000..8128220 --- /dev/null +++ b/artifacts/output_inventory/running_suspended_outputs_by_service.json @@ -0,0 +1,778 @@ +[ + { + "serviceId": 1, + "serviceName": "Болванка", + "instances": 39, + "statuses": { + "running": 36, + "suspended": 3 + }, + "out_paths": [], + "params_paths": [ + "bodymessage", + "durationMs", + "failAtStart", + "failInProgress", + "jsonExample", + "jsonExample.active", + "jsonExample.config_id", + "mapExample", + "mapExample.env", + "mapExample.modified", + "mapExample.tier", + "resourceRealm", + "whereFail", + "yamlExample" + ], + "vault_paths": [ + "fields", + "fields[]", + "url", + "userPath" + ] + }, + { + "serviceId": 12, + "serviceName": "S3 Object Storage", + "instances": 1, + "statuses": { + "running": 1 + }, + "out_paths": [ + "dtEndTrial", + "dtStartTrial", + "isTrial", + "monitoring", + "monitoring.allDashboards", + "monitoring.s3ceph", + "monitoring.s3ceph.url", + "urlConnect" + ], + "params_paths": [ + "maxBucketsPerUser", + "maxObjectsPerBucket", + "maxSizeGbPerUser", + "resourceRealm", + "userName" + ], + "vault_paths": [ + "fields", + "fields[]", + "url", + "userPath" + ] + }, + { + "serviceId": 13, + "serviceName": "S3 бакет", + "instances": 21, + "statuses": { + "running": 21 + }, + "out_paths": [ + "httpConnect" + ], + "params_paths": [ + "bucketName", + "corsAll", + "listAll", + "maxSize", + "placement", + "readAll", + "resourceRealm", + "s3UserUid" + ], + "vault_paths": [] + }, + { + "serviceId": 19, + "serviceName": "Организация в Cloud Director", + "instances": 1, + "statuses": { + "running": 1 + }, + "out_paths": [ + "urlConnect" + ], + "params_paths": [ + "resourceRealm", + "vIPConfigure", + "vIPConfigure[]", + "vIPConfigure[].count", + "vIPConfigure[].name" + ], + "vault_paths": [ + "fields", + "fields[]", + "url", + "userPath" + ] + }, + { + "serviceId": 21, + "serviceName": "Виртуальный датацентр (vDC)", + "instances": 13, + "statuses": { + "running": 1, + "suspended": 12 + }, + "out_paths": [ + "vdcName" + ], + "params_paths": [ + "cpuAllocated", + "cpuGuaranteed", + "memAllocated", + "memGuaranteed", + "organizationUid", + "storageConfig", + "storageConfig[]", + "storageConfig[].name", + "storageConfig[].size", + "storageVdcProfile", + "vdcNetworkPool", + "vdcProviderGateway" + ], + "vault_paths": [ + "fields", + "fields[]", + "userPath" + ] + }, + { + "serviceId": 25, + "serviceName": "Публичные IP адреса", + "instances": 6, + "statuses": { + "running": 6 + }, + "out_paths": [ + "externalIp" + ], + "params_paths": [ + "dnatCreate", + "fromServiceCloudEdgeName", + "fromServiceCloudEdgeScope", + "fromServiceCloudOrgName", + "fromServiceCloudVdcName", + "fromServiceCloudVmwareUrl", + "fromServiceNamespace", + "fromServiceVdcGroupName", + "internalAddrAccess", + "internalPortAccess", + "internalPortAccess[]", + "ipSpaceName", + "resourceRealm", + "serviceUid", + "snatCreate" + ], + "vault_paths": [ + "fields", + "fields[]", + "userPath" + ] + }, + { + "serviceId": 26, + "serviceName": "Виртуальный каталог ВМ (vApp)", + "instances": 1, + "statuses": { + "suspended": 1 + }, + "out_paths": [], + "params_paths": [ + "nsxtUid", + "vappName", + "vdcUid" + ], + "vault_paths": [ + "fields", + "fields[]", + "userPath" + ] + }, + { + "serviceId": 28, + "serviceName": "Виртуальная машина", + "instances": 9, + "statuses": { + "suspended": 9 + }, + "out_paths": [ + "externalConnect", + "fqdn", + "internalConnect" + ], + "params_paths": [ + "accessIpList", + "accessIpList[]", + "accessPortList", + "accessPortList[]", + "cloudInit", + "imageVm", + "ipSpaceName", + "needAddZabbixTemplate", + "userLogin", + "userPublicKey", + "vappUid", + "vmCpu", + "vmDisk", + "vmName", + "vmRam" + ], + "vault_paths": [] + }, + { + "serviceId": 82, + "serviceName": "Container Registry", + "instances": 1, + "statuses": { + "running": 1 + }, + "out_paths": [ + "connectionUrl", + "monitoring", + "monitoring.allDashboards", + "monitoring.base", + "monitoring.base.url", + "monitoring.k8sregistry", + "monitoring.k8sregistry.url", + "monitoring.loki", + "monitoring.loki.url" + ], + "params_paths": [ + "domain", + "emails", + "resourceCPU", + "resourceInstances", + "resourceMemory", + "resourceRealm", + "s3Uid" + ], + "vault_paths": [ + "fields", + "fields[]", + "url", + "userPath" + ] + }, + { + "serviceId": 90, + "serviceName": "PostgreSQL", + "instances": 11, + "statuses": { + "running": 5, + "suspended": 6 + }, + "out_paths": [ + "externalConnect", + "externalConnect.master", + "externalConnect.master.fqdn", + "externalConnect.master.ip", + "externalConnect.master.isExternal", + "externalConnect.master.uuid", + "externalConnect.slave", + "externalConnect.slave.fqdn", + "externalConnect.slave.ip", + "externalConnect.slave.isExternal", + "externalConnect.slave.uuid", + "internalConnect", + "internalConnect.master", + "internalConnect.slave", + "monitoring", + "monitoring.allDashboards", + "monitoring.base", + "monitoring.base.url", + "monitoring.k8spostgresql", + "monitoring.k8spostgresql.url", + "monitoring.k8spostgresqlbackup", + "monitoring.k8spostgresqlbackup.url", + "monitoring.loki", + "monitoring.loki.url" + ], + "params_paths": [ + "allowNoSSL", + "appVersion", + "autoScale", + "autoScalePercentage", + "autoScaleQuotaGb", + "autoScaleTechWindow", + "enablePgPoolerMaster", + "enablePgPoolerSlave", + "ext_BACKUP_NUM_TO_RETAIN", + "ext_BACKUP_SCHEDULE", + "ipSpaceNameMaster", + "ipSpaceNameSlave", + "jsonParameters", + "jsonParameters.log_connections", + "jsonParameters.log_disconnections", + "needExternalAddressMaster", + "needExternalAddressSlave", + "resourceCPU", + "resourceDisk", + "resourceInstances", + "resourceMemory", + "resourceRealm", + "s3Uid" + ], + "vault_paths": [ + "fields", + "fields[]", + "url", + "userPath" + ] + }, + { + "serviceId": 92, + "serviceName": "MongoDB", + "instances": 1, + "statuses": { + "suspended": 1 + }, + "out_paths": [ + "internalConnect", + "monitoring", + "monitoring.allDashboards", + "monitoring.base", + "monitoring.base.url", + "monitoring.loki", + "monitoring.loki.url" + ], + "params_paths": [ + "resourceCPU", + "resourceDisk", + "resourceInstances", + "resourceMemory", + "resourceRealm" + ], + "vault_paths": [] + }, + { + "serviceId": 93, + "serviceName": "RabbitMQ", + "instances": 2, + "statuses": { + "running": 1, + "suspended": 1 + }, + "out_paths": [ + "clusterDomain", + "externalConnect", + "externalConnect.admin", + "externalConnect.admin.fqdn", + "externalConnect.admin.ip", + "externalConnect.admin.isExternal", + "externalConnect.admin.uuid", + "inernalConnect", + "inernalConnect.master", + "inernalConnect.slave", + "monitoring", + "monitoring.allDashboards", + "monitoring.base", + "monitoring.base.url", + "monitoring.loki", + "monitoring.loki.url" + ], + "params_paths": [ + "needExternalAddressMaster", + "resourceCPU", + "resourceDisk", + "resourceInstances", + "resourceMemory", + "resourceRealm" + ], + "vault_paths": [ + "fields", + "fields[]", + "url", + "userPath" + ] + }, + { + "serviceId": 94, + "serviceName": "Lucee", + "instances": 6, + "statuses": { + "running": 2, + "suspended": 4 + }, + "out_paths": [ + "connectionUrl", + "monitoring", + "monitoring.allDashboards", + "monitoring.base", + "monitoring.base.url", + "monitoring.loki", + "monitoring.loki.url" + ], + "params_paths": [ + "appVersion", + "domain", + "gitPath", + "healthPath", + "jsonEnv", + "jsonEnv.NODEWORKER_URL", + "jsonEnv.PGHOST", + "jsonEnv.PGPASSWORD", + "jsonEnv.PGPORT", + "jsonEnv.PGSSLMODE", + "jsonEnv.PGUSER", + "jsonEnv.PG_TABLE", + "jsonEnv.RABBIT_ADMIN_URL", + "jsonEnv.RABBIT_DURABLE", + "jsonEnv.RABBIT_HOST", + "jsonEnv.RABBIT_PASSWORD", + "jsonEnv.RABBIT_PORT", + "jsonEnv.RABBIT_QUEUES", + "jsonEnv.RABBIT_USER", + "jsonEnv.RABBIT_VHOST", + "jsonEnv.UI_LOG_TABLE", + "jsonEnv.param", + "jsonEnv.testds_bundleName", + "jsonEnv.testds_bundleVersion", + "jsonEnv.testds_class", + "jsonEnv.testds_connectionLimit", + "jsonEnv.testds_connectionString", + "jsonEnv.testds_liveTimeout", + "jsonEnv.testds_password", + "jsonEnv.testds_username", + "jsonEnv.testds_validate", + "resourceCPU", + "resourceInstances", + "resourceMemory", + "resourceRealm" + ], + "vault_paths": [ + "fields", + "fields[]", + "url", + "userPath" + ] + }, + { + "serviceId": 95, + "serviceName": "NodeJS", + "instances": 5, + "statuses": { + "running": 2, + "suspended": 3 + }, + "out_paths": [ + "connectionUrl", + "monitoring", + "monitoring.allDashboards", + "monitoring.base", + "monitoring.base.url", + "monitoring.loki", + "monitoring.loki.url" + ], + "params_paths": [ + "appVersion", + "domain", + "gitPath", + "healthPath", + "jsonEnv", + "jsonEnv.DATABASE_URL", + "jsonEnv.PGDATABASE", + "jsonEnv.PGHOST", + "jsonEnv.PGPASSWORD", + "jsonEnv.PGPORT", + "jsonEnv.PGSSLMODE", + "jsonEnv.PGUSER", + "jsonEnv.PG_TABLE", + "jsonEnv.RABBIT_DURABLE", + "jsonEnv.RABBIT_HOST", + "jsonEnv.RABBIT_PASSWORD", + "jsonEnv.RABBIT_PORT", + "jsonEnv.RABBIT_PREFETCH", + "jsonEnv.RABBIT_QUEUES", + "jsonEnv.RABBIT_USER", + "jsonEnv.RABBIT_VHOST", + "jsonEnv.REQUEUE_ON_ERROR", + "resourceCPU", + "resourceInstances", + "resourceMemory", + "resourceRealm" + ], + "vault_paths": [ + "fields", + "fields[]", + "url", + "userPath" + ] + }, + { + "serviceId": 96, + "serviceName": "pgAdmin", + "instances": 4, + "statuses": { + "running": 2, + "suspended": 2 + }, + "out_paths": [ + "connectionUrl", + "monitoring", + "monitoring.allDashboards", + "monitoring.base", + "monitoring.base.url", + "monitoring.loki", + "monitoring.loki.url" + ], + "params_paths": [ + "domain", + "login", + "password", + "resourceCPU", + "resourceDisk", + "resourceInstances", + "resourceMemory", + "resourceRealm" + ], + "vault_paths": [ + "fields", + "fields[]", + "url", + "userPath" + ] + }, + { + "serviceId": 98, + "serviceName": "Простой HTTP контейнер", + "instances": 2, + "statuses": { + "suspended": 2 + }, + "out_paths": [ + "connectionUrl", + "monitoring", + "monitoring.allDashboards", + "monitoring.base", + "monitoring.base.url", + "monitoring.loki", + "monitoring.loki.url" + ], + "params_paths": [ + "domain", + "jsonEnv", + "jsonEnv.PGDATABASE", + "jsonEnv.PGHOST", + "jsonEnv.PGPASSWORD", + "jsonEnv.PGPORT", + "jsonEnv.PGSSLMODE", + "jsonEnv.PGUSER", + "jsonEnv.PG_TABLE", + "jsonEnv.RABBIT_DURABLE", + "jsonEnv.RABBIT_HOST", + "jsonEnv.RABBIT_PASSWORD", + "jsonEnv.RABBIT_PORT", + "jsonEnv.RABBIT_PREFETCH", + "jsonEnv.RABBIT_QUEUES", + "jsonEnv.RABBIT_USER", + "jsonEnv.RABBIT_VHOST", + "jsonEnv.REQUEUE_ON_ERROR", + "registryPath", + "resourceCPU", + "resourceInstances", + "resourceMemory", + "resourceRealm" + ], + "vault_paths": [ + "fields", + "fields[]", + "url", + "userPath" + ] + }, + { + "serviceId": 99, + "serviceName": "Gitea", + "instances": 1, + "statuses": { + "running": 1 + }, + "out_paths": [ + "connectionUrl", + "monitoring", + "monitoring.allDashboards", + "monitoring.base", + "monitoring.base.url", + "monitoring.loki", + "monitoring.loki.url" + ], + "params_paths": [ + "domain", + "psqlUid", + "resourceCPU", + "resourceDisk", + "resourceInstances", + "resourceMemory", + "resourceRealm" + ], + "vault_paths": [ + "fields", + "fields[]", + "url", + "userPath" + ] + }, + { + "serviceId": 110, + "serviceName": "DNS зона", + "instances": 2, + "statuses": { + "running": 2 + }, + "out_paths": [ + "dnsServers", + "dnsServers.ns1.nubes.ru", + "dnsServers.ns2.nubes.ru", + "dnsServers[]", + "zoneSerial", + "zoneSoaServer" + ], + "params_paths": [ + "resourceRealm", + "zoneEmail", + "zoneExpire", + "zoneKind", + "zoneMastersForSlave", + "zoneName", + "zoneRefresh", + "zoneRetry", + "zoneTtl" + ], + "vault_paths": [] + }, + { + "serviceId": 111, + "serviceName": "DNS запись", + "instances": 35, + "statuses": { + "running": 35 + }, + "out_paths": [ + "dnsServers", + "dnsServers[]", + "record" + ], + "params_paths": [ + "recordInput", + "recordName", + "recordTTL", + "recordType", + "zoneUid" + ], + "vault_paths": [ + "fields", + "fields[]", + "userPath" + ] + }, + { + "serviceId": 116, + "serviceName": "ApacheKafka", + "instances": 2, + "statuses": { + "running": 1, + "suspended": 1 + }, + "out_paths": [ + "externalConnect", + "externalConnect.bootstrap", + "externalConnect.bootstrap.fqdn", + "externalConnect.bootstrap.ip", + "externalConnect.bootstrap.isExternal", + "externalConnect.bootstrap.uuid", + "internalConnect", + "kafkaTopics", + "kafkaTopics.test-events", + "kafkaTopics.test-events.partitions", + "kafkaTopics.test-events.replicas", + "kafkaUsers", + "kafkaUsers.usertest", + "kafkaUsers.usertest.accessHosts", + "kafkaUsers.usertest.group", + "kafkaUsers.usertest.nameTopic", + "kafkaUsers.usertest.operations", + "monitoring", + "monitoring.allDashboards", + "monitoring.base", + "monitoring.base.url", + "monitoring.loki", + "monitoring.loki.url" + ], + "params_paths": [ + "ipSpaceNameMaster", + "needExternalAddressMaster", + "resourceCPU", + "resourceDisk", + "resourceInstances", + "resourceMemory", + "resourceRealm" + ], + "vault_paths": [ + "fields", + "fields[]", + "url", + "userPath" + ] + }, + { + "serviceId": 119, + "serviceName": "Akhq", + "instances": 3, + "statuses": { + "suspended": 3 + }, + "out_paths": [ + "connectionUrl" + ], + "params_paths": [ + "domain", + "resourceCPU", + "resourceInstances", + "resourceMemory", + "resourceRealm" + ], + "vault_paths": [ + "fields", + "fields[]", + "url", + "userPath" + ] + }, + { + "serviceId": 150, + "serviceName": "Kubernetes кластер Штурвал", + "instances": 1, + "statuses": { + "running": 1 + }, + "out_paths": [ + "ingressAddress", + "kubernetesApiAddress" + ], + "params_paths": [ + "accessIpListAPI", + "accessIpListIngress", + "appVersion", + "clusterName", + "controlPlaneCount", + "controlPlaneSizingDisk", + "controlPlaneSizingPolicy", + "needExternalAddressAPI", + "needExternalAddressIngress", + "nsxtUid", + "resourceRealm", + "workersCount", + "workersSizingDisk", + "workersSizingPolicy" + ], + "vault_paths": [ + "fields", + "fields[]", + "url", + "userPath" + ] + } +] \ No newline at end of file diff --git a/check_ops.py b/check_ops.py new file mode 100644 index 0000000..65e8093 --- /dev/null +++ b/check_ops.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python3 +# Проверка операций на инстансе pg-test-02 (710C1C21) +import json, urllib.request + +TFVARS = "/home/naeel/terra/sless/examples/PG_TEST/terraform.tfvars" +INSTANCE_UID = "710C1C21-B9E8-4973-8DE4-EAA796ADDA00" +API = "https://deck-api-test.ngcloud.ru/api/v1/index.cfm" + +# Читаем токен из tfvars +token = "" +for line in open(TFVARS): + if "api_token" in line: + token = line.split('"')[1] + break + +def get(path): + req = urllib.request.Request(f"{API}{path}", headers={"Authorization": f"Bearer {token}"}) + return json.loads(urllib.request.urlopen(req, timeout=10).read()) + +# Операции на инстансе +print("=== Операции на инстансе ===") +ops = get(f"/instanceOperations?instanceUid={INSTANCE_UID}") +items = ops if isinstance(ops, list) else ops.get("data", []) +for i in items[:10]: + print(f" uid={i.get('uid')} op={i.get('svcOperation')} status={i.get('status')} created={i.get('createdAt')}") + +# Статус инстанса +print("\n=== Статус инстанса ===") +inst = get(f"/instances/{INSTANCE_UID}") +print(f" name={inst.get('name') or inst.get('displayName')} state={inst.get('state') or inst.get('instanceState')} status={inst.get('status') or inst.get('instanceStatus')}") +# Все ключи инстанса для диагностики +print(" DEBUG keys:", list(inst.keys())[:15]) + +# Поиск по имени через search API (как делает провайдер) +print("\n=== Поиск pg-test-02 через search API ===") +search_res = get("/instances?fields=instanceUid,displayName,serviceId&page=1&pageSize=100&search=pg-test-02&isAuxiliary=false&isDeleted=false") +results = search_res if isinstance(search_res, list) else search_res.get("results", search_res.get("data", [])) +for i in results: + uid = i.get("instanceUid") or i.get("uid") + print(f" uid={uid} name={i.get('displayName') or i.get('name')} svcId={i.get('serviceId')} state={i.get('state')}") + +# Пагинированный список всех инстансов (первая страница) +print("\n=== Все инстансы (страница 1, size=100) ===") +all_inst = get("/instances?page=1&size=100") +all_items = all_inst if isinstance(all_inst, list) else all_inst.get("data", all_inst.get("results", [])) +pg_found = 0 +for i in all_items: + name = i.get("displayName") or i.get("name") or "" + if "pg-test" in name.lower(): + uid = i.get("instanceUid") or i.get("uid") + print(f" uid={uid} name={name} state={i.get('state')} status={i.get('status')}") + pg_found += 1 +if pg_found == 0: + print(f" pg-test инстансов не найдено (всего в ответе: {len(all_items)} записей)") + # Печатаем первые 3 для отладки структуры + for i in all_items[:3]: + print(f" DEBUG: keys={list(i.keys())[:8]}") diff --git a/cloud-dashboard/.gitignore b/cloud-dashboard/.gitignore new file mode 100644 index 0000000..b23b55e --- /dev/null +++ b/cloud-dashboard/.gitignore @@ -0,0 +1,3 @@ +*.bak* +__pycache__/ +*.pyc diff --git a/cloud-dashboard/Dockerfile b/cloud-dashboard/Dockerfile new file mode 100644 index 0000000..55b48c9 --- /dev/null +++ b/cloud-dashboard/Dockerfile @@ -0,0 +1,8 @@ +FROM python:3.12-slim +WORKDIR /app +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt +COPY main.py . +COPY static/ /app/static/ +EXPOSE 8080 +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"] diff --git a/cloud-dashboard/k8s/deployment.yaml b/cloud-dashboard/k8s/deployment.yaml new file mode 100644 index 0000000..f37f603 --- /dev/null +++ b/cloud-dashboard/k8s/deployment.yaml @@ -0,0 +1,28 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: cloud-dashboard + namespace: terra +spec: + replicas: 1 + selector: + matchLabels: + app: cloud-dashboard + template: + metadata: + labels: + app: cloud-dashboard + spec: + containers: + - name: cloud-dashboard + image: naeel/cloud-dashboard:v1 + imagePullPolicy: Always + ports: + - containerPort: 8080 + resources: + requests: + memory: "64Mi" + cpu: "50m" + limits: + memory: "128Mi" + cpu: "200m" diff --git a/cloud-dashboard/k8s/ingress.yaml b/cloud-dashboard/k8s/ingress.yaml new file mode 100644 index 0000000..7c12319 --- /dev/null +++ b/cloud-dashboard/k8s/ingress.yaml @@ -0,0 +1,20 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: dashboard-ingress + namespace: terra + annotations: + nginx.ingress.kubernetes.io/rewrite-target: /$2 +spec: + ingressClassName: nginx + rules: + - host: terra.k8c.ru + http: + paths: + - path: /dashboard(/|$)(.*) + pathType: ImplementationSpecific + backend: + service: + name: cloud-dashboard + port: + number: 80 diff --git a/cloud-dashboard/k8s/service.yaml b/cloud-dashboard/k8s/service.yaml new file mode 100644 index 0000000..6404c7b --- /dev/null +++ b/cloud-dashboard/k8s/service.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Service +metadata: + name: cloud-dashboard + namespace: terra +spec: + selector: + app: cloud-dashboard + ports: + - port: 80 + targetPort: 8080 diff --git a/cloud-dashboard/main.py b/cloud-dashboard/main.py new file mode 100644 index 0000000..63fa974 --- /dev/null +++ b/cloud-dashboard/main.py @@ -0,0 +1,220 @@ +from fastapi import FastAPI, Header, HTTPException, Request +from fastapi.staticfiles import StaticFiles +import httpx +from typing import Annotated +import asyncio +import time + +app = FastAPI() + +DECK_APIS = { + "prod": "https://deck-api.ngcloud.ru/api/v1", + "dev": "https://deck-api-dev.ngcloud.ru/api/v1", + "test": "https://deck-api-test.ngcloud.ru/api/v1", +} +DEFAULT_DECK_ENV = "test" +CACHE_TTL_SECONDS = 180 +GRAPH_CACHE: dict[str, tuple[float, dict]] = {} + + +def auth_headers(token: str): + return {"Authorization": f"Bearer {token}"} + + +def resolve_deck_api(env_raw: str | None) -> tuple[str, str]: + env = (env_raw or DEFAULT_DECK_ENV).strip().lower() + if env not in DECK_APIS: + env = DEFAULT_DECK_ENV + return env, DECK_APIS[env] + + +async def fetch_all_instances(token: str, deck_api: str): + params: dict = {"page": 1, "size": 200} + all_results = [] + async with httpx.AsyncClient(timeout=20) as client: + while True: + r = await client.get( + f"{deck_api}/index.cfm/instances", + headers=auth_headers(token), + params=params, + ) + if r.status_code == 401: + raise HTTPException(status_code=401, detail="Invalid token") + data = r.json() + results = data.get("results", []) + all_results.extend(results) + if len(results) < 200: + break + params["page"] += 1 + return all_results + + +@app.get("/api/instances") +async def list_instances( + request: Request, + x_deck_token: Annotated[str | None, Header()] = None, + x_deck_env: Annotated[str | None, Header()] = None, +): + if not x_deck_token: + raise HTTPException(status_code=401, detail="Token required") + _, deck_api = resolve_deck_api(x_deck_env) + # parse status from query string manually (FastAPI list param can fail behind ingress rewrite) + status_list = request.query_params.getlist("status") + all_results = await fetch_all_instances(x_deck_token, deck_api) + if status_list: + all_results = [i for i in all_results if i.get("explainedStatus") in status_list] + return {"instances": all_results, "total": len(all_results)} + + +@app.get("/api/graph") +async def get_graph( + request: Request, + x_deck_token: Annotated[str | None, Header()] = None, + x_deck_env: Annotated[str | None, Header()] = None, +): + if not x_deck_token: + raise HTTPException(status_code=401, detail="Token required") + env, deck_api = resolve_deck_api(x_deck_env) + + status_list = request.query_params.getlist("status") + root_uid = request.query_params.get("root_uid") + depth_raw = request.query_params.get("depth", "2") + try: + depth = max(1, min(5, int(depth_raw))) + except ValueError: + depth = 2 + + status_key = ",".join(sorted(status_list)) if status_list else "__all__" + cache_key = f"{x_deck_token[:24]}::{env}::{status_key}" + now = time.time() + + cached = GRAPH_CACHE.get(cache_key) + if cached and (now - cached[0] < CACHE_TTL_SECONDS): + base_graph = cached[1] + else: + all_instances = await fetch_all_instances(x_deck_token, deck_api) + if status_list: + all_instances = [i for i in all_instances if i.get("explainedStatus") in status_list] + + uid_to_inst = { + i.get("instanceUid"): i + for i in all_instances + if i.get("instanceUid") + } + allowed_uids = set(uid_to_inst.keys()) + + sem = asyncio.Semaphore(16) + + async def fetch_detail(uid: str): + async with sem: + async with httpx.AsyncClient(timeout=20) as client: + r = await client.get( + f"{deck_api}/index.cfm/instances/{uid}", + headers=auth_headers(x_deck_token), + ) + if r.status_code == 401: + raise HTTPException(status_code=401, detail="Invalid token") + if r.status_code >= 400: + return uid, None + return uid, r.json().get("instance") + + details = await asyncio.gather(*[fetch_detail(uid) for uid in allowed_uids]) + detail_map = {uid: inst for uid, inst in details if inst} + + edge_set = set() + + def dep_uid(dep_obj: dict): + return dep_obj.get("uid") or dep_obj.get("instanceUid") + + for uid, inst in detail_map.items(): + for dep in inst.get("dependencies", []) or []: + src = dep_uid(dep) + if src and src in allowed_uids: + edge_set.add((src, uid)) + for dep_on in inst.get("dependentInstances", []) or []: + dst = dep_uid(dep_on) + if dst and dst in allowed_uids: + edge_set.add((uid, dst)) + + nodes = [] + for uid in allowed_uids: + i = uid_to_inst.get(uid, {}) + nodes.append( + { + "id": uid, + "label": i.get("displayName") or uid, + "status": i.get("explainedStatus") or "unknown", + "svc": i.get("svc") or "", + "realm": i.get("resourceRealm") or "", + } + ) + + edges = [{"source": s, "target": t} for s, t in sorted(edge_set)] + base_graph = {"nodes": nodes, "edges": edges} + GRAPH_CACHE[cache_key] = (now, base_graph) + + # Return full graph fast + if not root_uid: + return { + "nodes": base_graph["nodes"], + "edges": base_graph["edges"], + "total_nodes": len(base_graph["nodes"]), + "total_edges": len(base_graph["edges"]), + "cached": bool(cached), + } + + node_ids = {n["id"] for n in base_graph["nodes"]} + if root_uid not in node_ids: + return {"nodes": [], "edges": [], "total_nodes": 0, "total_edges": 0, "cached": bool(cached)} + + adj: dict[str, set[str]] = {uid: set() for uid in node_ids} + for e in base_graph["edges"]: + s, t = e["source"], e["target"] + if s in adj and t in adj: + adj[s].add(t) + adj[t].add(s) + + frontier = {root_uid} + seen = {root_uid} + for _ in range(depth): + nxt = set() + for node in frontier: + nxt |= adj.get(node, set()) + nxt -= seen + if not nxt: + break + seen |= nxt + frontier = nxt + + sub_nodes = [n for n in base_graph["nodes"] if n["id"] in seen] + sub_edges = [e for e in base_graph["edges"] if e["source"] in seen and e["target"] in seen] + return { + "nodes": sub_nodes, + "edges": sub_edges, + "total_nodes": len(sub_nodes), + "total_edges": len(sub_edges), + "cached": bool(cached), + } + + +@app.get("/api/instances/{uid}") +async def get_instance( + request: Request, + uid: str, + x_deck_token: Annotated[str | None, Header()] = None, + x_deck_env: Annotated[str | None, Header()] = None, +): + if not x_deck_token: + raise HTTPException(status_code=401, detail="Token required") + _, deck_api = resolve_deck_api(x_deck_env) + async with httpx.AsyncClient(timeout=20) as client: + r = await client.get( + f"{deck_api}/index.cfm/instances/{uid}", + headers=auth_headers(x_deck_token), + ) + if r.status_code == 401: + raise HTTPException(status_code=401, detail="Invalid token") + return r.json() + + +app.mount("/", StaticFiles(directory="/app/static", html=True), name="static") diff --git a/cloud-dashboard/requirements.txt b/cloud-dashboard/requirements.txt new file mode 100644 index 0000000..6ef40cf --- /dev/null +++ b/cloud-dashboard/requirements.txt @@ -0,0 +1,3 @@ +fastapi==0.115.0 +uvicorn[standard]==0.34.0 +httpx==0.27.0 diff --git a/cloud-dashboard/static/index.html b/cloud-dashboard/static/index.html new file mode 100644 index 0000000..96f04c4 --- /dev/null +++ b/cloud-dashboard/static/index.html @@ -0,0 +1,894 @@ + + + + + + Nubes Cloud Dashboard + + + + +
+ +
+ +
+
+
+
Общий граф зависимостей: running
+ +
+
+
+
+
+
+ + + + + + diff --git a/instance_fca3f912.json b/instance_fca3f912.json new file mode 100644 index 0000000..5600894 --- /dev/null +++ b/instance_fca3f912.json @@ -0,0 +1 @@ +{"queryDurationMs":134,"instance":{"instanceUid":"fca3f912-c32f-49f9-9cba-40fbaefced63","displayName":"lucy1","serviceId":94,"descr":"Created via Terraform Universal Provider","specificationItemId":1705,"isAuxiliary":false,"instanceConfigDtCreated":"2026-02-13T16:06:51.978+0300","instanceConfigDtUpdated":"2026-02-13T16:06:51.978+0300","contractId":4,"specificationId":4,"specification":"2","quantity":1,"price":null,"svc":"Lucee","code":null,"man":null,"updaterId":7594,"updaterLogin":"tazet@narod.ru","updaterShortname":" Н. Ф.","resourceRealm":"k8s-3.ext.nubes.ru","operationIsInProgress":false,"operationIsPending":false,"uptime":0,"explainedStatus":"running","resourceRealmCnt":2,"isCreated":true,"isDeleted":false,"state":{"instanceStateUid":"1f8e98d0-a2ad-4188-b965-a8ec874cc34b","version":15,"creatorId":7594,"dtState":"2026-02-14T09:40:10.817+0300","isTest":true,"instanceOperationUid":"9c1554b8-5023-4aef-85b1-21f6afc6260a","out":{"monitoring":{"base":{"url":"https://grafana.ngcloud.ru/d/fca3f912-c32f-49f9-9cba-40fbaefced63-def?orgId=28"},"loki":{"url":"https://grafana.ngcloud.ru/d/fca3f912-c32f-49f9-9cba-40fbaefced63-log?orgId=28"},"allDashboards":"https://grafana.ngcloud.ru/dashboards/f/fca3f912-c32f-49f9-9cba-40fbaefced63?orgId=28"},"connectionUrl":"https://web03.luceek8s.services.ngcloud.ru"},"params":{"domain":"web03","gitPath":"https://github.com/xahys/testlucee","jsonEnv":{"PGHOST":"postgresqlk8s-master.a71094c1-b0ed-4bfb-a264-37b41d279567.svc.k8s-3.ext.nubes.ru","PGPORT":"5432","PGUSER":"postgres","PGSSLMODE":"require","PGPASSWORD":"TMGMCN5GYzx8gj1GiqA4rmf19HEJKgQXSUHcN17hJNnbyZmicfhU5AfFpLQyF22I"},"appVersion":"5.4","healthPath":"","resourceCPU":300,"resourceRealm":"k8s-3.ext.nubes.ru","resourceMemory":512,"resourceInstances":1},"vault":{"url":"https://vault.lk.adl.nubes.ru/v1/deck-tool-prod/data/clients/luceek8s/fca3f912-c32f-49f9-9cba-40fbaefced63?version=15","fields":[],"userPath":"luceek8s/fca3f912-c32f-49f9-9cba-40fbaefced63"},"isDeleted":false,"isSuspended":false},"operations":[{"instanceOperationUid":"db0be830-f61d-46a6-8663-6280ace602c9","instanceStateUid":null,"stateVersion":null,"operation":"modify","resourceRealmId":null,"resourceRealm":null,"dtSubmit":"2026-02-14T09:40:47.389+0300","submitResult":"201","dtStart":"2026-02-14T09:40:47.389+0300","dtFinish":"2026-02-14T09:43:37.337+0300","duration":169.948,"secondsPassed":365.3,"isSuccessful":false,"dtCreated":"2026-02-14T09:40:34.638+0300","errorLog":null,"note":null,"updaterLogin":"tazet@narod.ru","updaterShortname":" Н. Ф.","isInProgress":false,"isPending":false},{"instanceOperationUid":"9c1554b8-5023-4aef-85b1-21f6afc6260a","instanceStateUid":"1f8e98d0-a2ad-4188-b965-a8ec874cc34b","stateVersion":15,"operation":"modify","resourceRealmId":null,"resourceRealm":null,"dtSubmit":"2026-02-14T09:38:52.735+0300","submitResult":"201","dtStart":"2026-02-14T09:38:52.735+0300","dtFinish":"2026-02-14T09:40:12.280+0300","duration":79.545,"secondsPassed":570.3,"isSuccessful":true,"dtCreated":"2026-02-14T09:38:40.357+0300","errorLog":null,"note":null,"updaterLogin":"tazet@narod.ru","updaterShortname":" Н. Ф.","isInProgress":false,"isPending":false},{"instanceOperationUid":"1e36b5ea-7a54-452e-8ebd-70f0c6aa82e8","instanceStateUid":"c301c5bc-2abd-44e0-a59a-34fc81da4b56","stateVersion":14,"operation":"modify","resourceRealmId":null,"resourceRealm":null,"dtSubmit":"2026-02-14T09:34:26.821+0300","submitResult":"201","dtStart":"2026-02-14T09:34:26.821+0300","dtFinish":"2026-02-14T09:35:40.839+0300","duration":74.018,"secondsPassed":841.8,"isSuccessful":true,"dtCreated":"2026-02-14T09:34:12.549+0300","errorLog":null,"note":null,"updaterLogin":"tazet@narod.ru","updaterShortname":" Н. Ф.","isInProgress":false,"isPending":false},{"instanceOperationUid":"c0c60270-3100-4b8b-abe6-356955c65d6d","instanceStateUid":"6644063b-22cb-4a68-b9b2-c0e2ba2539ee","stateVersion":13,"operation":"modify","resourceRealmId":null,"resourceRealm":null,"dtSubmit":"2026-02-14T08:39:06.299+0300","submitResult":"201","dtStart":"2026-02-14T08:39:06.299+0300","dtFinish":"2026-02-14T08:39:42.265+0300","duration":35.966,"secondsPassed":4200.3,"isSuccessful":true,"dtCreated":"2026-02-13T21:29:58.266+0300","errorLog":null,"note":null,"updaterLogin":"tazet@narod.ru","updaterShortname":" Н. Ф.","isInProgress":false,"isPending":false},{"instanceOperationUid":"97b6d67b-9476-4c7f-8d77-bfc30aab050f","instanceStateUid":"48c9307a-a73d-4b0b-8ad9-51f6a7aaabdf","stateVersion":12,"operation":"modify","resourceRealmId":null,"resourceRealm":null,"dtSubmit":"2026-02-13T21:29:04.474+0300","submitResult":"201","dtStart":"2026-02-13T21:29:04.473+0300","dtFinish":"2026-02-13T21:29:36.965+0300","duration":32.492,"secondsPassed":44405.6,"isSuccessful":true,"dtCreated":"2026-02-13T21:28:54.690+0300","errorLog":null,"note":null,"updaterLogin":"tazet@narod.ru","updaterShortname":" Н. Ф.","isInProgress":false,"isPending":false},{"instanceOperationUid":"6b6e7072-1b4d-4367-8123-e09dc0a63d5f","instanceStateUid":"5e5d9464-b204-4852-84ed-542c2d52b9f9","stateVersion":11,"operation":"modify","resourceRealmId":null,"resourceRealm":null,"dtSubmit":"2026-02-13T19:17:08.914+0300","submitResult":"201","dtStart":"2026-02-13T19:17:08.914+0300","dtFinish":"2026-02-13T19:17:42.381+0300","duration":33.467,"secondsPassed":52320.2,"isSuccessful":true,"dtCreated":"2026-02-13T19:17:01.113+0300","errorLog":null,"note":null,"updaterLogin":"tazet@narod.ru","updaterShortname":" Н. Ф.","isInProgress":false,"isPending":false},{"instanceOperationUid":"5c5272be-c392-4a39-b0fb-c1aa8bb63907","instanceStateUid":"b1a508a9-bd3c-4720-809e-3617663f16c4","stateVersion":10,"operation":"modify","resourceRealmId":null,"resourceRealm":null,"dtSubmit":"2026-02-13T19:15:30.638+0300","submitResult":"201","dtStart":"2026-02-13T19:15:30.638+0300","dtFinish":"2026-02-13T19:16:03.443+0300","duration":32.805,"secondsPassed":52419.2,"isSuccessful":true,"dtCreated":"2026-02-13T19:15:23.401+0300","errorLog":null,"note":null,"updaterLogin":"tazet@narod.ru","updaterShortname":" Н. Ф.","isInProgress":false,"isPending":false},{"instanceOperationUid":"63e98213-0e7a-4fbb-a8b8-2e2375488bd4","instanceStateUid":"af7973a4-5486-4765-886c-187db17fbbc6","stateVersion":9,"operation":"modify","resourceRealmId":null,"resourceRealm":null,"dtSubmit":"2026-02-13T19:13:18.592+0300","submitResult":"201","dtStart":"2026-02-13T19:13:18.592+0300","dtFinish":"2026-02-13T19:13:52.565+0300","duration":33.973,"secondsPassed":52550,"isSuccessful":true,"dtCreated":"2026-02-13T18:53:38.157+0300","errorLog":null,"note":null,"updaterLogin":"tazet@narod.ru","updaterShortname":" Н. Ф.","isInProgress":false,"isPending":false},{"instanceOperationUid":"41767567-e747-4028-83f2-e02d492c434d","instanceStateUid":"2aa22fa6-c143-46b9-86db-c2112aae2f17","stateVersion":8,"operation":"modify","resourceRealmId":null,"resourceRealm":null,"dtSubmit":"2026-02-13T18:51:20.635+0300","submitResult":"201","dtStart":"2026-02-13T18:51:20.635+0300","dtFinish":"2026-02-13T18:52:41.425+0300","duration":80.79,"secondsPassed":53821.2,"isSuccessful":true,"dtCreated":"2026-02-13T18:51:08.062+0300","errorLog":null,"note":null,"updaterLogin":"tazet@narod.ru","updaterShortname":" Н. Ф.","isInProgress":false,"isPending":false},{"instanceOperationUid":"e53d43be-171b-4540-babc-5b9403e7a982","instanceStateUid":"c79eb58d-7fe6-4442-bec5-8c54dc470ad8","stateVersion":7,"operation":"modify","resourceRealmId":null,"resourceRealm":null,"dtSubmit":"2026-02-13T18:43:52.574+0300","submitResult":"201","dtStart":"2026-02-13T18:43:52.573+0300","dtFinish":"2026-02-13T18:44:27.973+0300","duration":35.4,"secondsPassed":54314.6,"isSuccessful":true,"dtCreated":"2026-02-13T18:43:44.492+0300","errorLog":null,"note":null,"updaterLogin":"tazet@narod.ru","updaterShortname":" Н. Ф.","isInProgress":false,"isPending":false},{"instanceOperationUid":"9a11e25d-6dc1-447c-b8c0-22b172455d62","instanceStateUid":"4eeac614-9497-455e-b4c8-6b6e06a62cf7","stateVersion":6,"operation":"modify","resourceRealmId":null,"resourceRealm":null,"dtSubmit":"2026-02-13T18:41:17.999+0300","submitResult":"201","dtStart":"2026-02-13T18:41:17.999+0300","dtFinish":"2026-02-13T18:42:59.165+0300","duration":101.166,"secondsPassed":54403.4,"isSuccessful":true,"dtCreated":"2026-02-13T18:41:08.248+0300","errorLog":null,"note":null,"updaterLogin":"tazet@narod.ru","updaterShortname":" Н. Ф.","isInProgress":false,"isPending":false},{"instanceOperationUid":"50a3f864-97fc-4e45-b92b-b9537646e6a7","instanceStateUid":"9629e035-02fb-45a4-8896-000184f5a020","stateVersion":5,"operation":"modify","resourceRealmId":null,"resourceRealm":null,"dtSubmit":"2026-02-13T18:32:36.412+0300","submitResult":"201","dtStart":"2026-02-13T18:32:36.412+0300","dtFinish":"2026-02-13T18:33:10.212+0300","duration":33.8,"secondsPassed":54992.4,"isSuccessful":true,"dtCreated":"2026-02-13T18:32:20.849+0300","errorLog":null,"note":null,"updaterLogin":"tazet@narod.ru","updaterShortname":" Н. Ф.","isInProgress":false,"isPending":false},{"instanceOperationUid":"be06ab86-1a48-4c13-b4b2-4e3ed95d7da4","instanceStateUid":"f544dc74-d4ad-4380-90f3-1bf1d3d70110","stateVersion":4,"operation":"modify","resourceRealmId":null,"resourceRealm":null,"dtSubmit":"2026-02-13T18:28:20.245+0300","submitResult":"201","dtStart":"2026-02-13T18:28:20.244+0300","dtFinish":"2026-02-13T18:28:53.651+0300","duration":33.407,"secondsPassed":55248.9,"isSuccessful":true,"dtCreated":"2026-02-13T18:28:11.225+0300","errorLog":null,"note":null,"updaterLogin":"tazet@narod.ru","updaterShortname":" Н. Ф.","isInProgress":false,"isPending":false},{"instanceOperationUid":"e40443e0-0891-41b1-8965-978eed5ba6d3","instanceStateUid":null,"stateVersion":null,"operation":"modify","resourceRealmId":null,"resourceRealm":null,"dtSubmit":"2026-02-13T18:14:36.753+0300","submitResult":"201","dtStart":"2026-02-13T18:14:36.753+0300","dtFinish":"2026-02-13T18:25:40.744+0300","duration":663.991,"secondsPassed":55441.9,"isSuccessful":false,"dtCreated":"2026-02-13T18:14:28.365+0300","errorLog":"Приложение не запустилось. Производится полный откат установки. Ошибка: jlib.k8s [correctReplicaActive] | ERROR | Под(ы) не работают: 'luceek8s' (Deployment).","note":null,"updaterLogin":"tazet@narod.ru","updaterShortname":" Н. Ф.","isInProgress":false,"isPending":false},{"instanceOperationUid":"75146b18-4b58-4672-ae8e-96f51fd86912","instanceStateUid":"40b24238-b1b2-425b-8ad1-51d0ef56a14e","stateVersion":3,"operation":"modify","resourceRealmId":null,"resourceRealm":null,"dtSubmit":"2026-02-13T18:11:55.353+0300","submitResult":"201","dtStart":"2026-02-13T18:11:55.353+0300","dtFinish":"2026-02-13T18:12:33.597+0300","duration":38.244,"secondsPassed":56229,"isSuccessful":true,"dtCreated":"2026-02-13T18:11:45.024+0300","errorLog":null,"note":null,"updaterLogin":"tazet@narod.ru","updaterShortname":" Н. Ф.","isInProgress":false,"isPending":false},{"instanceOperationUid":"cdc73ec4-51b6-4ef3-9e8d-7e9bccd27340","instanceStateUid":"c4ae70b9-a35b-4b26-84b9-b62514613475","stateVersion":2,"operation":"modify","resourceRealmId":null,"resourceRealm":null,"dtSubmit":"2026-02-13T17:59:53.784+0300","submitResult":"201","dtStart":"2026-02-13T17:59:53.783+0300","dtFinish":"2026-02-13T18:00:29.370+0300","duration":35.587,"secondsPassed":56953.2,"isSuccessful":true,"dtCreated":"2026-02-13T17:59:46.242+0300","errorLog":null,"note":null,"updaterLogin":"tazet@narod.ru","updaterShortname":" Н. Ф.","isInProgress":false,"isPending":false},{"instanceOperationUid":"04563ada-d2a4-40cb-9019-c79906cfc361","instanceStateUid":"c2e2c108-9241-4f7e-8f8d-75c12f578375","stateVersion":1,"operation":"create","resourceRealmId":null,"resourceRealm":null,"dtSubmit":"2026-02-13T17:56:45.645+0300","submitResult":"201","dtStart":"2026-02-13T17:56:45.645+0300","dtFinish":"2026-02-13T17:58:41.256+0300","duration":115.611,"secondsPassed":57061.3,"isSuccessful":true,"dtCreated":"2026-02-13T16:06:52.171+0300","errorLog":null,"note":null,"updaterLogin":"tazet@narod.ru","updaterShortname":" Н. Ф.","isInProgress":false,"isPending":false}],"availableOperations":[{"svcOperationId":50,"operation":"delete","instanceOperationUid":null},{"svcOperationId":53,"operation":"redeploy","instanceOperationUid":null},{"svcOperationId":55,"operation":"modify","instanceOperationUid":null},{"svcOperationId":95,"operation":"resume","instanceOperationUid":null},{"svcOperationId":96,"operation":"suspend","instanceOperationUid":null},{"svcOperationId":163,"operation":"restart","instanceOperationUid":null}],"dependentInstances":[],"dependencies":[]},"runDurationMs":136} \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..9e1bc60 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,58 @@ +site_name: Провайдер Terraform Nubes +site_url: https://terra.k8c.ru/docs/nubes/nubes/2.0.1/ + +exclude_docs: | + README.md + ai_universal_provider_gen.md + 00_overview/* + 20_discovery/* + 40_analysis/* + 50_history/* + 60_strategy/* + 70_api/* + help/* + +docs_dir: docs +site_dir: site + +theme: + name: material + logo: 30_registry/assets/logo.svg + favicon: 30_registry/assets/favicon.png + palette: + - scheme: default + primary: blue + accent: indigo + features: + - navigation.tabs + - navigation.tabs.sticky + - navigation.sections + - navigation.top + +extra_css: + - 30_registry/assets/extra.css + +extra_javascript: + - 30_registry/javascripts/fix-slash.js + +markdown_extensions: + - admonition + - attr_list + - toc: + permalink: true + - pymdownx.details + - pymdownx.inlinehilite + - pymdownx.superfences + - pymdownx.highlight: + anchor_linenums: true + +nav: + - Главная: index.md + - Ресурсы: + - Справочник: 30_registry/resources/index.md + - Руководства: + - Быстрый старт: 30_registry/guides/getting-started.md + - Основы Terraform: 30_registry/guides/terraform-basics.md + - Структура манифестов: 30_registry/guides/terraform-structure.md + - S3 Notifications: 30_registry/guides/s3-bucket-notifications.md + - Глоссарий: 30_registry/guides/glossary.md diff --git a/name_check.txt b/name_check.txt new file mode 100644 index 0000000..bb0e7af --- /dev/null +++ b/name_check.txt @@ -0,0 +1,18 @@ +tf-s3-test-01 NOT_FOUND >> /home/naeel/terra/name_check.txt + else + echo tf-s3-test-01 FOUND +tf-edge-test-01 NOT_FOUND >> /home/naeel/terra/name_check.txt + else + echo tf-edge-test-01 FOUND +tf-redis-test-01 NOT_FOUND >> /home/naeel/terra/name_check.txt + else + echo tf-redis-test-01 FOUND +tf-dns-zone-01 NOT_FOUND >> /home/naeel/terra/name_check.txt + else + echo tf-dns-zone-01 FOUND +tf-dns-record-01 NOT_FOUND >> /home/naeel/terra/name_check.txt + else + echo tf-dns-record-01 FOUND +tf-grafana-tenant-01 NOT_FOUND >> /home/naeel/terra/name_check.txt + else + echo tf-grafana-tenant-01 FOUND diff --git a/prompt_for_ds_pro.md b/prompt_for_ds_pro.md new file mode 100644 index 0000000..fc89ceb --- /dev/null +++ b/prompt_for_ds_pro.md @@ -0,0 +1,226 @@ +# Запрос на глубокий анализ — Terraform Provider for Nubes Cloud + +## Контекст + +Проект — **Terraform Provider** для облачной платформы **Nubes Cloud** (Taffy/Deck API). +Провайдер написан на Go с использованием `terraform-plugin-framework` (SDK v2). + +**Версия:** 5.0.52 +**Тип:** Universal Provider — один core-движок, ресурсы генерируются из YAML-спек. + +--- + +## Структура проекта + +### Папки (корень: `/home/naeel/tf_provider/`) + +``` +internal/ +├── core/ # Универсальный клиент API (client.go, instance_ops.go, instance_lookup.go) +├── provider/ # Реализация провайдера и НЕ-сгенерированных ресурсов (VM, Edge, VDC, VApp, Postgres, S3 и др.) +├── generated/ # Сгенерированные bolvan-ресурсы +└── registrykeys/ # Ключи для GPG-подписи + +universal_rebuild/ # Новая универсальная архитектура (ядро, генераторы, YAML-спеки) +├── internal/ +│ ├── core/ # Универсальный клиент (client.go) — v6 API flow +│ ├── provider/ # Конфиг провайдера +│ ├── resources_core/ # CRUD-логика (crud.go), хелперы, валидация, реф-параметры +│ └── resources_gen/ # АВТОМАТИЧЕСКИ СГЕНЕРИРОВАННЫЕ ресурсы (~100 файлов) +├── tools/ +│ ├── gen/ # Go-генератор (читает YAML → генерирует ресурсы + registry.go) +│ ├── gen_v2/ # Версия 2 генератора +│ ├── service_params_gen/ # YAML-генератор (API → YAML) +│ ├── docs_template_gen/ # Генератор документации +│ └── service_spec_gen/ # Генератор спек +└── resources_yaml/ # YAML-спеки (сейчас только embed.go — встраиваются в бинарник) + +devops/ # Скрипты сборки и деплоя +├── config/ +│ ├── services_list.txt # Список всех сервисов (30+ строк) +│ └── operation_timeouts.json # Таймауты операций по сервисам +├── 01_generate_yamls.sh # Шаг 1: YAML из API +├── 02_generate_resources_and_docs*.sh # Шаг 2: генерация Go + docs +└── 03_build_and_upload_provider.sh # Шаг 3: сборка + публикация + +docs/ # Документация +├── 00_overview/ # Обзор +├── 20_discovery/ # Discovery сервисов +├── 30_registry/ # Реестр ресурсов +├── 40_analysis/ # Анализы и форензика +├── 50_history/ # История (23 файла — пошагово весь процесс разработки) +├── 60_strategy/ # Стратегия и философия провайдера +├── 70_api/ # API-документация и дампы +└── help/ # Справка +``` + +--- + +## Что уже сделано и известно + +### Архитектура API (Taffy/Deck) + +**Базовый URL:** `https://deck-api.ngcloud.ru/api/v1/index.cfm` + +**Жизненный цикл операции:** +1. `POST /instances` — создать placeholder инстанса → получаем `instanceUid` +2. `POST /instanceOperations` — создать операцию (create/modify/suspend/resume/delete) → `instanceOperationUid` +3. `GET /instanceOperations/{uid}?fields=cfsParams` — получить схему параметров +4. `POST /instanceOperationCfsParams` — отправить значения параметров (каждый параметр по `svcOperationCfsParamId`) +5. `GET /instanceOperations/{uid}/validate-cfs` — валидация +6. `POST /instanceOperations/{uid}/run` — запуск операции +7. `GET /instanceOperations/{uid}` — поллинг до `dtFinish` (критерий завершения) + +**Получение состояния инстанса:** `GET /instances/{instanceUid}` → `explainedStatus`, `isDeleted`, `availableOperations` + +**Получение списка инстансов:** `GET /instances?page=N&size=100` + +### Список сервисов (30+) +Сервисы с service_id от 1 до 150: +- Инфраструктурные: vcOrg(19), vc_vdc(21), vc_nsxt(22), vc_vm(23/27/28), vapp(26), vcexternalip(25), vcVdcGroup(29) +- Базы данных: postgres(90), mariadb(115), mongodb(92), redis(91), clickhouse(120), vmpostgre(32), kafka(116) +- Хранилища: s3(12), s3bucket(13) +- Приложения: nextcloud(50), superset(81), harbor(82), flask(89), lucee(94), nodejs(95), pgadmin(96), nodered(97), http(98), gitea(99), rabbitmq(93), nifi(117), openwhisk(100) +- DNS: dnszone(110), dnsrecord(111) +- K8s: k8s_sthutrval_cluster(150) +- Прочее: dummy(1), template(2), tenant(112), vcComplex(113), GiteaComplex(114), akhq(119), valoTenant(149) + +### Lifecycle-логика (для сервисов с suspend/resume) +- **Флаги:** `adopt_existing_on_create` (default: false), `suspend_on_destroy` (default: true) +- **Apply/Create:** проверка облака по `resource_name` → статус-матрица принятия решений +- **Destroy:** по умолчанию suspend, при `suspend_on_destroy=false` — только state +- **Modify:** через `RunInstanceOperationUniversal` с params по `svcOperationCfsParamId` +- **Replace:** запрещён для suspend-сервисов + +### Проблемы, известные из истории +1. **Case-sensitivity имён** (docs/60_strategy/terraform_case_sensitivity_fix.md) +2. **Ref-параметры и валидация на adopt** (docs/60_strategy/adopt_ref_validation.md) +3. **VApp UID inconsistency / displayName resolve bug** (история 23) +4. **Subresource generation** — не все подресурсы корректно генерируются +5. **Params normalisation** — CamelCase → snake_case может ломаться +6. **Postgres immutables** — некоторые параметры нельзя менять после создания (ForceNew) +7. **Operation timeouts** — разные сервисы требуют разных таймаутов +8. **Deleted instances** — определение deleted через `explainedStatus` и `isDeleted` +9. **Валидация статусов** — `not created`, `pending`, `failed` должны блокировать adopt +10. **ResourceAlreadyExists diagnostics** — обязательны два варианта в сообщении + +### Архитектура universal_rebuild (ключевые особенности) +- **Ядро (core)**: UniversalClient — универсальный клиент, `CreateGenericInstanceUniversalV6`, `RunInstanceOperationUniversal`, `FindInstanceByDisplayName` +- **Resources_core**: `CreateResource`, `UpdateResource`, `DeleteResource`, `RunOperationByCode` — обёртки CRUD с timeout override +- **Resources_gen**: ~100 автогенерированных файлов ресурсов (все сервисы) +- **Генераторы**: `service_params_gen` → YAML, `gen/gen_v2` → Go код, `docs_template_gen` → документация +- **YAML-спеки**: сейчас встраиваются через embed.go, но есть YAML-генератор + +### Генерация (devops pipeline) +1. `01_generate_yamls.sh` — получает YAML из API для всех сервисов из `services_list.txt` +2. `02_generate_resources_and_docs*.sh` — запускает Go-генератор + docs-генератор +3. `03_build_and_upload_provider.sh` — сборка под 3 ОС + GPG-подпись + загрузка в S3 +4. `04_build_and_publish_docs.sh` — сборка mkdocs + публикация в S3 + +### Документация +- MkDocs Material theme +- Документация генерируется из тех же YAML-спек +- Публикуется в S3 bucket `terraform-registry` + +--- + +## Что НУЖНО изучить подробно + +### 1. API: неизвестные эндпойнты и возможности +- Есть ли другие эндпойнты, кроме задокументированных? +- Как работает `/services/{svcId}/default` (deprecated — что вместо)? +- Есть ли batch-операции? +- Пагинация: какие лимиты? Есть ли курсор? +- Rate limiting: есть ли? Какие лимиты? +- Есть ли эндпойнт для массового получения всех инстансов с параметрами? + +### 2. Параметры сервисов (svcOperationCfsParamId) +Для каждого сервиса: +- Полный список `cfsParams` (все операции: create, modify, suspend, resume, delete, action) +- Какие параметры required, какие optional, какие read-only (outputs) +- Какие параметры имеют `refSvcId` (ссылки на другие сервисы) +- Какие параметры имеют `valueList` (выпадающие списки) +- DataType: какие бывают (string, boolean, list, uuid, int, float, json?) +- Default values — откуда берутся? +- Какие параметры immutable (create-only) +- Какие параметры зависят от других (dependency chain) + +### 3. Статусы и состояния инстансов +- Все возможные значения `explainedStatus` +- Все возможные значения `isDeleted` +- Матрица переходов (state machine): + - `creating` → `running` + - `running` → `suspend` → `running` + - `running` → `deleted` + - `failed` → ? + - `not created` → ? +- Что происходит при `pending` / `operation in progress`? +- Как долго длятся типичные операции? + +### 4. Операции (kinds и их семантика) +- `kind: instance` — полный CRUD +- `kind: subresource` — операции внутри инстанса (create_user, delete_database и т.д.) +- `kind: action` — одноразовые операции (restart, redeploy, recovery) +- Для каждого сервиса: какие subresource и action операции доступны? +- Как subresource идентифицируются? (через parent instanceUid? свой instanceUid?) +- Есть ли операции, которые не вписываются в схему? + +### 5. Схема YAML-спек +- Нужно восстановить формат YAML для примера одного-двух сервисов (dummy, postgres, s3bucket) +- Какие поля обязательны? Какие опциональны? +- Как описываются operations с kind-ами? +- Как описываются timeout-ы? +- Как описываются outputs? +- Как описываются service_man (руководство пользователя)? +- Как описываются lifecycle-правила (suspend_on_destroy, adopt_existing_on_create)? + +### 6. Ошибки и проблемы продакшена +- Все известные баги из истории (23 файла в docs/50_history/) +- Какие ресурсы сейчас не работают? (VApp UID, Postgres immutables и т.д.) +- Какие тесты падают или неполны? +- Есть ли проблемы с GPG-ключами / реестром? +- Есть ли проблемы с S3-публикацией? + +### 7. Тестовое покрытие +- Какие тесты написаны в `universal_rebuild/internal/resources_core/`? +- Есть ли интеграционные тесты с реальным API? +- Какие тесты нужны, но отсутствуют? +- Есть ли моки для API? + +### 8. Безопасность +- Как управляются токены? Какой механизм refresh? +- Есть ли поддержка разных эндпойнтов (prod/dev)? +- Как обрабатываются чувствительные данные (пароли БД, ключи)? +- Есть ли валидация входящих параметров на injection? + +### 9. Производительность +- Сколько времени занимает типичный apply? +- Есть ли узкие места в поллинге? +- Оптимальные интервалы поллинга для разных операций? +- Есть ли кэширование? + +### 10. Документация (MkDocs) +- Как генерируется документация из YAML? +- Как работает шаблонизация? +- Что надо исправить/дополнить? + +--- + +## Формат ответа + +Пожалуйста, предоставь детальный анализ по каждому из 10 пунктов. Для каждого пункта: +1. **Текущее понимание** (что уже известно из контекста) +2. **Пробелы в знаниях** (чего не хватает) +3. **Гипотезы** (что можно предположить на основе имеющихся данных) +4. **Что нужно сделать** (конкретные шаги: какие файлы прочитать, какие API вызвать, какие тесты запустить) +5. **Риски** (какие проблемы могут возникнуть) + +Особое внимание удели: +- Формату YAML-спек (п.5) — это основа всей генерации +- Полному списку cfsParams для топ-10 сервисов (п.2) +- Матрице состояний (п.3) — критично для lifecycle-логики +- Ошибкам из истории (п.6) — чтобы не повторять + +Если для какого-то пункта информации в предоставленном контексте недостаточно — укажи это и предложи, где искать недостающие данные (какие файлы прочитать, какие curl-запросы выполнить). + +**Важно:** Ничего НЕ ДЕЛАЙ в файловой системе. Никаких изменений кода, файлов, конфигов. Только анализ. diff --git a/prompt_for_opus48.md b/prompt_for_opus48.md new file mode 100644 index 0000000..e4a2094 --- /dev/null +++ b/prompt_for_opus48.md @@ -0,0 +1,289 @@ +# Промпт для Opus 4.8: Анализ Terraform Provider для Nubes Cloud + +> **Цель:** глубокий анализ архитектуры, генерационного пайплайна, API-взаимодействия и проблем проекта. Не просто описать, а найти слабые места, предложить улучшения, оценить риски. +> **Инструкция:** читай файлы по мере необходимости, не пытайся прочитать всё сразу. Ниже — карта проекта с указанием что где лежит и на что обратить внимание. + +--- + +## 1. Общая архитектура — два провайдера в одном репозитории + +| Компонент | Путь | Версия | Registry | Характер | +|-----------|------|--------|----------|----------| +| **Legacy** | `/main.go`, `internal/provider/` | 5.0.52 | `registry.terraform.io/nubes/nubes` | Ручной код, 13 ресурсов | +| **Universal Rebuild** | `universal_rebuild/main.go`, `universal_rebuild/...` | 5.0.51 | `terra.k8c.ru/nubes/nubes` | Полностью генерируемый, ~50 ресурсов | + +Оба используют `terraform-plugin-framework`. Legacy — ручной, Universal — продукт генерационного конвейера. Legacy всё ещё жив, Universal — целевой. + +### Ключевые файлы для понимания архитектуры: +- `/home/naeel/tf_provider/devops/ARCHITECTURE.md` — архитектурные принципы (YAML как source of truth, никаких ручных правок сгенерированного кода) +- `/home/naeel/tf_provider/docs/CODEBASE_ANALYSIS_AND_ROADMAP.md` — полный анализ кодовой базы от 13.03.2026 +- `/home/naeel/tf_provider/docs/MIGRATION_PLAN_FOR_AGENT.md` — план миграции в Managed K8s + +**Вопросы к Opus:** +- Насколько оправдано существование двух провайдеров? Когда и как Legacy должен быть выведен? +- Есть ли архитектурные проблемы в разделении `internal/` vs `universal_rebuild/internal/`? + +--- + +## 2. Генерационный конвейер (CRITICAL PATH) + +### Полный пайплайн: + +``` +API Nubes (deck-api.ngcloud.ru) + │ + ▼ +[Шаг 1] devops/01_generate_yamls.sh + │ └─ запускает: universal_rebuild/tools/service_spec_gen/generate_service_spec.go + │ └─ читает: devops/config/services_list.txt (30+ сервисов) + │ └─ для каждого сервиса: GET /services/{id} → получает операции → GET детали каждой операции → cfsParams + │ └─ пишет: {id}_{name}.yaml в resources_yaml/ + │ + ▼ +[Шаг 2] devops/02_generate_resources_and_docs_v2.sh + │ ├─ Go-генератор: universal_rebuild/tools/gen_v2/generate_resources_v2.go + │ │ └─ читает YAML → классифицирует операции (instance/subresource/action) → генерирует .go файлы + │ │ └─ пишет: internal/resources_gen/*.go (50+ файлов) + registry.go + │ │ + │ └─ Доку-генератор: universal_rebuild/tools/docs_template_gen_v2/ + │ └─ читает YAML → генерирует .md документацию + │ + ▼ +[Шаг 3] devops/03_build_and_upload_provider.sh + │ └─ сборка под linux/windows/darwin → GPG-подпись → S3 + │ + ▼ +[Шаг 4] devops/04_build_and_publish_docs.sh + └─ mkdocs build → S3 +``` + +### Ключевые файлы генераторов: +- **service_spec_gen** (API→YAML): `/home/naeel/tf_provider/universal_rebuild/tools/service_spec_gen/generate_service_spec.go` +- **gen_v2** (YAML→Go): `/home/naeel/tf_provider/universal_rebuild/tools/gen_v2/generate_resources_v2.go` +- **services_list.txt**: `/home/naeel/tf_provider/devops/config/services_list.txt` — 30+ сервисов (dummy, s3, postgres, kafka, clickhouse, k8s, ...) +- **operation_timeouts.json**: `/home/naeel/tf_provider/devops/config/operation_timeouts.json` + +### Профили (стенды): +- `/home/naeel/tf_provider/devops/profiles/test/`, `prod/`, `dev/` +- Каждый профиль содержит: `profile.env`, `services_list.txt`, `operation_timeouts.json`, `generated/` + +**Вопросы к Opus:** +- Насколько надёжен конвейер? Что произойдёт если API изменит формат ответа? +- Достаточно ли валидации на каждом шаге? Нет ли риска генерации битого кода? +- Почему генераторы на Go, а не на Python (учитывая что скрипты на bash)? +- Как обрабатываются ошибки API (retry, rate limiting)? См. `service_spec_gen` — есть `ATTEMPTS=3`, `REQUEST_DELAY=0.5` +- Комментирование сервисов в `services_list.txt` — это единственный способ исключить сервис? Не приведёт ли к рассинхрону? + +--- + +## 3. Core: UniversalClient и API-взаимодействие + +### Файл: `/home/naeel/tf_provider/universal_rebuild/internal/core/client.go` + +**API Flow V6 (create):** +1. `POST /instances` → получаем instanceUid +2. `POST /instanceOperations` (operation="create") → получаем instanceOperationUid +3. `GET /instanceOperations/{uid}?fields=cfsParams` → получаем параметры с дефолтами +4. `resolveRefSvcParamValues` — разрешение ref-параметров (UUID других сервисов) +5. Для каждого параметра: `POST /instanceOperationCfsParams` +6. Валидация + запуск операции + +**Методы:** +- `CreateGenericInstanceUniversalV6` — полный create flow +- `FindInstanceByDisplayName` — поиск по displayName с фильтрацией deleted/дубликатов +- `GetInstanceState` / `GetInstanceStateRaw` — чтение состояния +- `RunInstanceOperationUniversal` / `RunInstanceOperationUniversalWithDefaults` — modify/suspend/resume/delete +- `RunInstanceOperationUniversalByCode` — операции по коду (для action/subresource) + +### HTTP-транспорт: `/home/naeel/tf_provider/universal_rebuild/internal/provider/provider.go` +- Force HTTP/1.1 (API не поддерживает HTTP/2) +- InsecureSkipVerify опционально (для dev-стендов) +- Timeout 300s +- TLS 1.2 minimum + +### Поддержка core: +- `/home/naeel/tf_provider/universal_rebuild/internal/core/instance_params.go` — маппинг параметров +- `/home/naeel/tf_provider/universal_rebuild/internal/core/instance_outputs.go` — чтение outputs +- `/home/naeel/tf_provider/universal_rebuild/internal/core/refsvc_resolve.go` — разрешение ref_svc_id +- `/home/naeel/tf_provider/universal_rebuild/internal/core/operation_timeouts.go` — таймауты операций + +**Вопросы к Opus:** +- API Flow V6 — есть ли проблемы с идемпотентностью? Что при обрыве на шаге 4 или 5? +- `doRequest` внутри — есть ли retry logic? Как обрабатываются 429/503? +- Почему HTTP/1.1 принудительно? Это ограничение API или обход бага? +- 300s timeout на всём HTTP-клиенте — не мало ли для длинных операций (создание VM может идти 10+ минут)? + +--- + +## 4. CRUD-логика и Lifecycle + +### Файл: `/home/naeel/tf_provider/universal_rebuild/internal/resources_core/crud.go` + +**CreateResource:** +1. `FindInstanceByDisplayName` — поиск существующего +2. Если найден → `adoptExistingInstanceOnCreate`: + - Проверка `operation_in_progress`/`operation_pending` + - Если `adopt_existing_on_create=false` → ошибка + - Статус `not_created` → ошибка + - Статус `running` → валидация ref-параметров → adopt (возврат UUID) + - Статус `suspended` → проверка required-params → resume → валидация ref → adopt +3. Если не найден → `CreateGenericInstanceUniversalV6` + +**DeleteResource:** +- `suspend` → вызов suspend +- `state_only`/`detach` → только удаление из state + +**UpdateResource:** +- `RunInstanceOperationUniversalWithDefaults("modify")` + +### Поддерживающие файлы в `resources_core/` (все в `/home/naeel/tf_provider/universal_rebuild/internal/resources_core/`): +- `ref_validation.go` — валидация ref-параметров при adopt +- `required_params.go` + `required_params_compare.go` — проверка обязательных параметров +- `params_compare.go` — сравнение параметров для detect changes +- `params_mapping.go` + `params_ref_mapping.go` — маппинг параметров из/в API +- `params_validation_mapping.go` — маппинг для plan validation +- `state_refresh.go` — RefreshResourceState (чтение state после apply) +- `outputs.go` — FetchInstanceOutputs +- `operation_ids.go` — маппинг operation ID → имя +- `json_normalize.go` + `json_planmodifier.go` — нормализация JSON-параметров +- `uuid_planmodifier.go` — план-модификатор для UUID +- `domain_collision.go` — проверка коллизий доменов +- `resource_diagnostics.go` + `resource_diagnostics_required.go` — форматирование диагностик +- `subresource_guard.go` — защита подресурсов +- `crud_test.go` — тесты + +**Вопросы к Opus:** +- `adoptExistingInstanceOnCreate` — не слишком ли сложная логика? 100+ строк, много ветвлений. Есть ли риск не покрытых кейсов? +- Что происходит при concurrent apply из двух разных Terraform-окружений? +- `state_only` destroy — не остаются ли orphaned ресурсы в облаке? +- Как определяется `suspend_on_destroy` по умолчанию? Где логика `hasSuspend → suspendOnDestroyDefault`? + +--- + +## 5. Генерация Go-кода из YAML — КРИТИЧЕСКИ + +### Файл: `/home/naeel/tf_provider/universal_rebuild/tools/gen_v2/generate_resources_v2.go` + +**На входе:** YAML-спек каждого сервиса +**На выходе:** 3 типа Go-ресурсов: +- **Instance** (kind=instance) — CRUD + lifecycle (suspend/resume) +- **Subresource** (kind=subresource) — CRUD для подобъектов (users, databases, topics) +- **Action** (kind=action) — одноразовые операции (restart, redeploy, reconcile) + +**Логика генератора:** +1. Парсит все YAML → `ServiceSpec` (name, service_id, outputs, lifecycle, operations) +2. Для instance: собирает create/modify params → computeCreateOnly → mergeParams → генерирует `.go` +3. Для subresource: группирует по subresource name → create/modify/delete params +4. Для action: каждый action → отдельный ресурс с trigger-полем +5. Генерирует `registry.go` — `AllResources()` со всеми New* функциями + +### Пример сгенерированного файла: `/home/naeel/tf_provider/universal_rebuild/internal/resources_gen/90_postgres_resource.go` + +**Вопросы к Opus:** +- Шаблоны генерятся через `text/template` — где сами шаблоны? Они вшиты в `gen_v2` как константы? Насколько они поддерживаемы? +- Что произойдёт если в YAML появится новый kind операции, не известный генератору? +- `createOnly` параметры — как определяется что параметр immutable? Из API или эвристика? +- JSON-параметры (`data_type: json`) — как обрабатываются? Есть `IsJson` + `JsonNormalize` план-модификатор. Это надёжно? +- Для subresource — как определяется identity (какие параметры идентифицируют ресурс)? + +--- + +## 6. Известные проблемы (из 23 файлов истории) + +Архив: `/home/naeel/tf_provider/docs/50_history/` (23 файла, от `00_system_mechanics.md` до `23_vapp_uid_inconsistency_displayname_resolve_bug.md`) + +### Ключевые баги (прочитай эти файлы): +- **23** — `vapp_uid_inconsistency`: `FindInstanceByDisplayName` возвращает deleted инстанс (нет фильтра isDeleted) +- **22** — `adopt_ref_validation`: ref-параметры не валидировались при adopt → ссылки на deleted ресурсы +- **21** — `plan_validation_ref_svc_filter`: план показывал deleted/suspended инстансы в ref-списках +- **16** — `create_only_params`: create-only параметры не блокировались при modify +- **13** — `universal_flow_param_normalization`: нормализация параметров между API и Terraform +- **06** — `postgres_update_immutable_params`: immutable параметры при модификации +- **05** — `polling_fixes`: проблемы с поллингом длительных операций +- **04** — `vm_hang_fix_and_500_error`: 500 ошибка при модификации VM (см. также DEBUG_REPORT_VM_FIX.md) + +### Другие важные документы: +- `/home/naeel/tf_provider/docs/INSTANCE_STATES.md` — полная матрица состояний инстансов +- `/home/naeel/tf_provider/docs/STATE_TRANSITIONS.md` — все переходы состояний (NOT_CREATED, CREATING, RUNNING, SUSPENDED, DELETED, ...) +- `/home/naeel/tf_provider/docs/DEBUG_REPORT_VM_FIX.md` — отчёт о попытке исправить 500 при modify VM + +**Вопросы к Opus:** +- Какие баги из истории до сих пор актуальны (не исправлены)? +- Есть ли системные проблемы, которые порождают целые классы багов (например, отсутствие фильтрации deleted инстансов)? +- Насколько полна матрица состояний? Все ли переходы обрабатываются? +- 500 ошибка при modify VM — правильно ли был сделан анализ? Может быть проблема в API, а не в провайдере? + +--- + +## 7. HAR-трассировки — источник правды об API + +Файлы в `/home/naeel/tf_provider/HAR/`: +- `OK.har`, `goodmodify.har`, `baddelete.har` — реальные HTTP-трассировки +- `deck.ngcloud.ru.har`, `deck.ngcloud1.ru.har` — полные сессии +- `keycloak.nubes.ru.har`, `lucee.har`, `pguser.har` — специфичные сервисы + +**Вопросы к Opus:** +- HAR-файлы — ценный источник для верификации API-контракта. Используются ли они в тестах? +- Можно ли автоматизировать проверку что провайдер соответствует реальному API на основе HAR? + +--- + +## 8. Тестирование + +### Где тесты: +- `/home/naeel/tf_provider/universal_rebuild/internal/resources_core/crud_test.go` +- `/home/naeel/tf_provider/universal_rebuild/internal/core/client_test.go` + +**Вопросы к Opus:** +- Достаточно ли тестов? Какие пробелы? +- Как тестировать сгенерированные ресурсы без реального API? +- Нужны ли integration-тесты против реального API (с мок-сервером или тестовым стендом)? + +--- + +## 9. Безопасность + +- Токен аутентификации: env `NUBES_API_TOKEN`, файл `~/.nubes_token`, или в HCL (`api_token` — sensitive) +- GPG-ключ для подписи провайдера: `/home/naeel/tf_provider/secrets/private_key.asc` +- Токены: `/home/naeel/tf_provider/secrets/dev.token`, `prod.token`, `test.token` +- InsecureSkipVerify для dev-стендов + +**Вопросы к Opus:** +- Есть ли риск утечки токена через логи/диагностики? +- `Sensitive: true` на api_token — достаточно ли этого? +- GPG-ключ в репозитории — это нормально? (в `.gitignore` ли он?) + +--- + +## 10. Что нужно оценить Opus (итоговый список) + +1. **Архитектура:** два провайдера → стратегия перехода на Universal +2. **Конвейер:** надёжность, валидация, обработка ошибок API +3. **Генератор кода:** поддерживаемость шаблонов, расширяемость +4. **Core/API:** retry logic, таймауты, идемпотентность, HTTP/1.1 vs HTTP/2 +5. **Lifecycle:** полнота coverage состояний, краевые кейзы adopt/resume +6. **Баги:** какие системные, какие ещё не исправлены +7. **Тесты:** пробелы в покрытии +8. **Безопасность:** токены, GPG, secrets management +9. **Производительность:** поллинг, параллельные запросы, кэширование +10. **Документация:** насколько генерируемые доки соответствуют реальности + +### На что обратить ОСОБОЕ внимание: +- `adoptExistingInstanceOnCreate` в `crud.go` — самая сложная функция, много ветвлений +- `FindInstanceByDisplayName` — была переписана, но всё ещё есть риск не найти/найти не тот +- Генератор `gen_v2` — если сломается, сломается ВЕСЬ провайдер +- Immutable параметры — как определяется неизменяемость? Из API или из YAML? +- Конкурентный доступ — что если два `terraform apply` одновременно? + +--- + +## Инструкция Opus + +1. Начни с чтения `devops/ARCHITECTURE.md` и `docs/CODEBASE_ANALYSIS_AND_ROADMAP.md` +2. Затем прочитай ключевые файлы конвейера: `service_spec_gen/generate_service_spec.go` и `gen_v2/generate_resources_v2.go` +3. Затем core: `client.go` и `crud.go` +4. Затем историю проблем: выборочно 2-3 последних файла из `docs/50_history/` +5. После этого — дай развёрнутый анализ по ВСЕМ 10 пунктам выше +6. В анализе на каждый пункт: текущее состояние → что хорошо → что плохо → конкретные предложения → риски + +**НЕ читай все 50+ сгенерированных файлов подряд — они генерируются и не содержат уникальной логики.** diff --git a/scripts/check_cloud_instances.py b/scripts/check_cloud_instances.py new file mode 100644 index 0000000..c6ef0d1 --- /dev/null +++ b/scripts/check_cloud_instances.py @@ -0,0 +1,338 @@ +#!/usr/bin/env python3 +""" +Cloud Instance Status Checker +Проверяет статус ресурсов в облаке по манифесту Terraform +""" + +import json +import requests +import sys +from typing import Dict, Optional, List +from dataclasses import dataclass +from enum import Enum +from datetime import datetime + + +class InstanceState(Enum): + """Возможные состояния инстанса""" + NOT_CREATED = "not_created" + CREATING = "creating" + RUNNING = "running" + MODIFYING = "modifying" + SUSPENDING = "suspending" + SUSPENDED = "suspended" + RESUMING = "resuming" + DELETING = "deleting" + DELETED = "deleted" + OPERATION_PENDING = "operation_pending" + OPERATION_FAILED = "operation_failed" + UNKNOWN = "unknown" + + +@dataclass +class InstanceInfo: + """Информация об инстансе""" + uid: str + name: str + state: InstanceState + is_created: bool + is_deleted: bool + is_suspended: bool + uptime_seconds: float + operation_in_progress: bool + operation_pending: bool + last_operation: Optional[str] + last_operation_status: Optional[str] + error_log: Optional[str] + timestamp: str + + +class CloudInstanceChecker: + """Проверяет статус инстансов в облаке""" + + BASE_URL = "https://deck-api.ngcloud.ru/api/v1/index.cfm" + + def __init__(self, token: str): + """ + Инициализация чекера + + Args: + token: JWT токен для аутентификации в API + """ + self.token = token + self.session = requests.Session() + self.session.headers.update({ + "Authorization": f"Bearer {token}", + "Content-Type": "application/json" + }) + + def find_instance(self, display_name: str, service_type: Optional[str] = None) -> Optional[Dict]: + """ + Найти инстанс по отображаемому имени + + Args: + display_name: Имя ресурса в облаке + service_type: Тип сервиса (опционально, для фильтрации) + + Returns: + Данные инстанса или None если не найден + """ + try: + params = { + "fields": "instanceConfigDtCreated,instanceUid,displayName,svc,uptime,explainedStatus,svcExtendedName,updaterLogin,updaterShortname,operationIsInProgress,operationIsPending,monitoringUrl", + "search": display_name, + "isAuxiliary": "false", + "isDeleted": "false", + "page": "1", + "pageSize": "100" + } + + response = self.session.get(f"{self.BASE_URL}/instances", params=params) + response.raise_for_status() + + data = response.json() + results = data.get("results", []) + + # Поиск точного совпадения по имени + for instance in results: + if instance.get("displayName") == display_name: + if service_type is None or instance.get("svc") == service_type: + return instance + + return None + except requests.RequestException as e: + print(f"❌ Ошибка при поиске инстанса '{display_name}': {e}", file=sys.stderr) + return None + + def get_instance_details(self, instance_uid: str) -> Optional[Dict]: + """ + Получить полную информацию об инстансе + + Args: + instance_uid: UUID инстанса + + Returns: + Полные данные инстанса или None при ошибке + """ + try: + params = { + "fields": "instanceConfigDtCreated,instanceUid,displayName,descr,svc,state,operations,availableOperations,uptime,isDeleted,updaterLogin,updaterShortname,explainedStatus,man,dependencies,dependentInstances,svcExtendedName" + } + + response = self.session.get(f"{self.BASE_URL}/instances/{instance_uid}", params=params) + response.raise_for_status() + + return response.json().get("instance") + except requests.RequestException as e: + print(f"❌ Ошибка при получении информации об инстансе {instance_uid}: {e}", file=sys.stderr) + return None + + def determine_state(self, instance_data: Dict) -> InstanceState: + """ + Определить состояние инстанса на основе флагов + + Args: + instance_data: Данные инстанса от API + + Returns: + InstanceState enum + """ + # Проверка удаления + if instance_data.get("isDeleted"): + return InstanceState.DELETED + + # Проверка создания + if not instance_data.get("isCreated"): + return InstanceState.NOT_CREATED + + # Проверка операции в процессе + if instance_data.get("operationIsInProgress"): + operations = instance_data.get("operations", []) + if operations: + last_op = operations[-1] + operation = last_op.get("operation", "unknown") + + if operation == "create": + return InstanceState.CREATING + elif operation == "modify": + return InstanceState.MODIFYING + elif operation == "delete": + return InstanceState.DELETING + elif operation == "suspend": + return InstanceState.SUSPENDING + elif operation == "resume": + return InstanceState.RESUMING + + # Проверка ожидающей операции + if instance_data.get("operationIsPending"): + operations = instance_data.get("operations", []) + if operations: + last_op = operations[-1] + if not last_op.get("dtStart"): + return InstanceState.OPERATION_PENDING + + # Проверка приостановки + if instance_data.get("isSuspended"): + return InstanceState.SUSPENDED + + # Проверка основного статуса + if instance_data.get("explainedStatus") == "running": + return InstanceState.RUNNING + + # Проверка ошибок в операциях + operations = instance_data.get("operations", []) + if operations: + last_op = operations[-1] + if last_op.get("isSuccessful") == False: + return InstanceState.OPERATION_FAILED + + return InstanceState.UNKNOWN + + def check_instance(self, resource_name: str, service_type: Optional[str] = None) -> Optional[InstanceInfo]: + """ + Проверить статус инстанса + + Args: + resource_name: Имя ресурса в манифесте + service_type: Тип сервиса (опционально) + + Returns: + InstanceInfo с информацией о статусе + """ + # Поиск инстанса + instance_short = self.find_instance(resource_name, service_type) + + if not instance_short: + return InstanceInfo( + uid="unknown", + name=resource_name, + state=InstanceState.NOT_CREATED, + is_created=False, + is_deleted=False, + is_suspended=False, + uptime_seconds=0, + operation_in_progress=False, + operation_pending=False, + last_operation=None, + last_operation_status=None, + error_log=None, + timestamp=datetime.now().isoformat() + ) + + # Получить полную информацию + instance_uid = instance_short.get("instanceUid") + instance_full = self.get_instance_details(instance_uid) + + if not instance_full: + instance_full = instance_short + + # Определить состояние + state = self.determine_state(instance_full) + + # Извлечь информацию об операции + operations = instance_full.get("operations", []) + last_operation = None + last_operation_status = None + error_log = None + + if operations: + last_op = operations[-1] + last_operation = last_op.get("operation") + last_operation_status = "success" if last_op.get("isSuccessful") == True else "pending" if last_op.get("isSuccessful") is None else "failed" + error_log = last_op.get("errorLog") + + return InstanceInfo( + uid=instance_uid, + name=resource_name, + state=state, + is_created=instance_full.get("isCreated", False), + is_deleted=instance_full.get("isDeleted", False), + is_suspended=instance_full.get("isSuspended", False), + uptime_seconds=instance_full.get("uptime", 0), + operation_in_progress=instance_full.get("operationIsInProgress", False), + operation_pending=instance_full.get("operationIsPending", False), + last_operation=last_operation, + last_operation_status=last_operation_status, + error_log=error_log, + timestamp=datetime.now().isoformat() + ) + + def format_output(self, info: InstanceInfo) -> str: + """Форматировать результат для вывода""" + + # Выбрать эмодзи в зависимости от состояния + emoji_map = { + InstanceState.NOT_CREATED: "⚪", + InstanceState.CREATING: "🔄", + InstanceState.RUNNING: "✅", + InstanceState.MODIFYING: "🔧", + InstanceState.SUSPENDING: "⏸️", + InstanceState.SUSPENDED: "⏹️", + InstanceState.RESUMING: "▶️", + InstanceState.DELETING: "🗑️", + InstanceState.DELETED: "❌", + InstanceState.OPERATION_PENDING: "⏳", + InstanceState.OPERATION_FAILED: "💥", + InstanceState.UNKNOWN: "❓", + } + + emoji = emoji_map.get(info.state, "?") + + result = f"{emoji} {info.name}: {info.state.value.upper()}" + + if info.uid != "unknown": + result += f" (UID: {info.uid[:8]}...)" + + if info.last_operation: + result += f" | Last op: {info.last_operation} ({info.last_operation_status})" + + if info.uptime_seconds > 0: + uptime_hours = info.uptime_seconds / 3600 + result += f" | Uptime: {uptime_hours:.1f}h" + + if info.error_log: + result += f"\n ⚠️ Error: {info.error_log[:100]}" + + return result + + +def main(): + """Главная функция""" + + # Пример использования + token_file = "/home/naeel/remote_dev/terraform/secrets/prod.token" + + try: + with open(token_file, 'r') as f: + token = f.read().strip() + except FileNotFoundError: + print(f"❌ Токен не найден: {token_file}", file=sys.stderr) + sys.exit(1) + + checker = CloudInstanceChecker(token) + + # Примеры ресурсов для проверки из PROD_STAND/PG1/resources.tf + resources_to_check = [ + ("pg-testing", "nubes_postgres"), + ("lucy11", "nubes_lucee"), + ("node_0111", "nubes_nodejs"), + ("baba-buck-test2", "nubes_s3bucket"), + ] + + print("=" * 80) + print("🔍 Cloud Instance Status Report") + print("=" * 80) + print() + + for resource_name, service_type in resources_to_check: + print(f"Checking: {resource_name}") + info = checker.check_instance(resource_name, service_type) + if info: + print(checker.format_output(info)) + print() + + print("=" * 80) + + +if __name__ == "__main__": + main() diff --git a/scripts/deploy-dev.sh b/scripts/deploy-dev.sh new file mode 100644 index 0000000..c46edec --- /dev/null +++ b/scripts/deploy-dev.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Create namespace if missing and apply kustomize overlay for dev +kubectl create namespace terra-dev --dry-run=client -o yaml | kubectl apply -f - +kubectl apply -k k8s/overlays/dev + +echo "Applied kustomize overlay for terra-dev." +echo "To init terraform backend for dev: terraform init -reconfigure -backend-config=terraform/backend-dev.hcl" diff --git a/scripts/package_release.sh b/scripts/package_release.sh new file mode 100755 index 0000000..5b03302 --- /dev/null +++ b/scripts/package_release.sh @@ -0,0 +1,69 @@ +#!/bin/bash +set -e + +# Cleanup +rm -rf build_artifacts +mkdir -p build_artifacts + +VERSION="${1:-2.0.1}" + +# Function to build and zip +build_and_zip() { + OS=$1 + ARCH=$2 + echo "Building for $OS/$ARCH..." + + BINARY_NAME="terraform-provider-nubes_v${VERSION}" + if [ "$OS" == "windows" ]; then + BINARY_NAME="${BINARY_NAME}.exe" + fi + + env CGO_ENABLED=0 GOOS=$OS GOARCH=$ARCH go build -o build_artifacts/${BINARY_NAME} . + + cd build_artifacts + ZIP_NAME="terraform-provider-nubes_${VERSION}_${OS}_${ARCH}.zip" + + # Zip the binary + if [[ "$OS" == "windows" ]]; then + # For windows, we might need zip to handle the .exe extension properly if we were relying on unix permissions, but zip handles it ok. + # Using python zipfile as 'zip' command was missing earlier + python3 -m zipfile -c $ZIP_NAME $BINARY_NAME + else + # Ensure executable permission + chmod +x $BINARY_NAME + python3 -m zipfile -c $ZIP_NAME $BINARY_NAME + fi + + # Remove binary to save space/confusion (optional, but cleaner) + rm $BINARY_NAME + cd .. +} + +# Build for all targets +build_and_zip linux amd64 +build_and_zip windows amd64 +build_and_zip darwin amd64 +build_and_zip darwin arm64 + +echo "Calculating SHA256SUMS..." +cd build_artifacts +sha256sum *.zip > terraform-provider-nubes_${VERSION}_SHA256SUMS + +echo "Signing SHA256SUMS..." +# Detached binary signature +gpg --batch --detach-sign --default-key 866FD93D456DCA800F2448413EC4673EB798238A --output terraform-provider-nubes_${VERSION}_SHA256SUMS.sig terraform-provider-nubes_${VERSION}_SHA256SUMS + +echo "Uploading to S3..." +# Base S3 path +S3_PATH="registry/terraform-registry/terra.k8c.ru/nubes/nubes/${VERSION}/" + +# Upload zips +for f in *.zip; do + mc cp $f $S3_PATH +done + +# Upload sums and sig +mc cp terraform-provider-nubes_${VERSION}_SHA256SUMS $S3_PATH +mc cp terraform-provider-nubes_${VERSION}_SHA256SUMS.sig $S3_PATH + +echo "Done!" diff --git a/scripts/publish-doc-page.sh b/scripts/publish-doc-page.sh new file mode 100755 index 0000000..e80f37b --- /dev/null +++ b/scripts/publish-doc-page.sh @@ -0,0 +1,196 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Publish a single rendered docs page (or a small file set) to a specific docs version path. +# +# Usage examples: +# ./scripts/publish-doc-page.sh \ +# --profile devops/profiles/test \ +# --version 5.0.17 \ +# --page 30_registry/guides/getting-started/index.html +# +# ./scripts/publish-doc-page.sh \ +# --profile devops/profiles/prod \ +# --version 2.1.26 \ +# --page 30_registry/guides/getting-started/ + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +ROOT_DIR="${ROOT_DIR:-$(cd "${SCRIPT_DIR}/.." && pwd)}" +PROFILE_DIR="" +SITE_DIR="${ROOT_DIR}/site" +PAGE_REL="" +VERSION="" +REGISTRY_HOST="${REGISTRY_HOST:-terra.k8c.ru}" +NAMESPACE="${NAMESPACE:-nubes}" +PROVIDER_NAME="${PROVIDER_NAME:-nubes}" +S3CFG_REGISTRY="${S3CFG_REGISTRY:-${ROOT_DIR}/secrets/.s3cfg_registry}" + +usage() { + cat <<'EOF' +Usage: + publish-doc-page.sh --profile --version --page [--site-dir ] + +Required: + --profile Path to stand profile dir (e.g. devops/profiles/test) + --version Docs version (e.g. 5.0.17) + --page Relative path inside built site dir, e.g.: + 30_registry/guides/getting-started/index.html + 30_registry/guides/getting-started/ (auto -> index.html) + +Optional: + --site-dir Built MkDocs site directory (default: /site) + +Behavior: + Uploads exactly one file to: + docs//// + in S3 bucket terraform-registry. +EOF +} + +resolve_root_path() { + local path_value="$1" + if [[ -z "$path_value" ]]; then + echo "" + return + fi + if [[ "$path_value" = /* ]]; then + echo "$path_value" + return + fi + echo "${ROOT_DIR}/${path_value}" +} + +load_s3cfg_registry() { + local cfg="$1" + if [[ ! -f "$cfg" ]]; then + echo "Error: S3 config not found: $cfg" >&2 + exit 2 + fi + + local access_key secret_key host_base use_https endpoint + access_key=$(awk -F '=' '/^\s*access_key\s*=/ {gsub(/^[ \t]+|[ \t]+$/, "", $2); print $2; exit}' "$cfg") + secret_key=$(awk -F '=' '/^\s*secret_key\s*=/ {gsub(/^[ \t]+|[ \t]+$/, "", $2); print $2; exit}' "$cfg") + host_base=$(awk -F '=' '/^\s*host_base\s*=/ {gsub(/^[ \t]+|[ \t]+$/, "", $2); print $2; exit}' "$cfg") + use_https=$(awk -F '=' '/^\s*use_https\s*=/ {gsub(/^[ \t]+|[ \t]+$/, "", $2); print tolower($2); exit}' "$cfg") + + if [[ -z "${S3_ACCESS_KEY:-}" && -n "$access_key" ]]; then + export S3_ACCESS_KEY="$access_key" + fi + if [[ -z "${S3_SECRET_KEY:-}" && -n "$secret_key" ]]; then + export S3_SECRET_KEY="$secret_key" + fi + + if [[ -z "${S3_ENDPOINT:-}" && -n "$host_base" ]]; then + if [[ "$host_base" == http* ]]; then + endpoint="$host_base" + else + if [[ "$use_https" == "false" || "$use_https" == "0" || "$use_https" == "no" ]]; then + endpoint="http://${host_base}" + else + endpoint="https://${host_base}" + fi + fi + export S3_ENDPOINT="$endpoint" + fi + + if [[ -z "${S3_ENDPOINT:-}" || -z "${S3_ACCESS_KEY:-}" || -z "${S3_SECRET_KEY:-}" ]]; then + echo "Error: S3 credentials are not set (S3_ENDPOINT/S3_ACCESS_KEY/S3_SECRET_KEY)" >&2 + exit 2 + fi +} + +while [[ $# -gt 0 ]]; do + case "$1" in + --profile) + PROFILE_DIR="${2:-}" + shift 2 + ;; + --version) + VERSION="${2:-}" + shift 2 + ;; + --page) + PAGE_REL="${2:-}" + shift 2 + ;; + --site-dir) + SITE_DIR="${2:-}" + shift 2 + ;; + -h|--help) + usage + exit 0 + ;; + *) + echo "Error: unknown argument: $1" >&2 + usage + exit 2 + ;; + esac +done + +if [[ -z "$PROFILE_DIR" || -z "$VERSION" || -z "$PAGE_REL" ]]; then + echo "Error: --profile, --version and --page are required" >&2 + usage + exit 2 +fi + +PROFILE_DIR="$(resolve_root_path "$PROFILE_DIR")" +SITE_DIR="$(resolve_root_path "$SITE_DIR")" +S3CFG_REGISTRY="$(resolve_root_path "$S3CFG_REGISTRY")" + +if [[ ! -d "$PROFILE_DIR" ]]; then + echo "Error: profile directory not found: $PROFILE_DIR" >&2 + exit 2 +fi + +PROFILE_ENV_FILE="${PROFILE_DIR}/profile.env" +if [[ -f "$PROFILE_ENV_FILE" ]]; then + set -a + # shellcheck disable=SC1090 + source "$PROFILE_ENV_FILE" + set +a +fi + +# Re-apply defaults from profile if provided +REGISTRY_HOST="${REGISTRY_HOSTNAME:-${REGISTRY_HOST:-$REGISTRY_HOST}}" +NAMESPACE="${NAMESPACE:-$NAMESPACE}" +PROVIDER_NAME="${PROVIDER_NAME:-$PROVIDER_NAME}" +if [[ -n "${S3CFG_REGISTRY:-}" ]]; then + S3CFG_REGISTRY="$(resolve_root_path "${S3CFG_REGISTRY}")" +fi + +if [[ ! -d "$SITE_DIR" ]]; then + echo "Error: site dir not found: $SITE_DIR" >&2 + exit 2 +fi + +page="${PAGE_REL#/}" +if [[ "$page" == */ ]]; then + page="${page}index.html" +fi +if [[ "$page" != *.html && "$page" != *.xml && "$page" != *.txt && "$page" != *.json && "$page" != *.css && "$page" != *.js ]]; then + # convenience: if user passed folder-like path without trailing slash + if [[ -f "$SITE_DIR/${page}/index.html" ]]; then + page="${page}/index.html" + fi +fi + +SOURCE_FILE="${SITE_DIR}/${page}" +if [[ ! -f "$SOURCE_FILE" ]]; then + echo "Error: page file not found: $SOURCE_FILE" >&2 + exit 2 +fi + +load_s3cfg_registry "$S3CFG_REGISTRY" + +MC_ALIAS="registry" +mc alias set "$MC_ALIAS" "$S3_ENDPOINT" "$S3_ACCESS_KEY" "$S3_SECRET_KEY" --api S3v4 >/dev/null + +TARGET="${MC_ALIAS}/terraform-registry/docs/${NAMESPACE}/${PROVIDER_NAME}/${VERSION}/${page}" +mc cp "$SOURCE_FILE" "$TARGET" + +PUBLIC_TARGET="${MC_ALIAS}/terraform-registry/docs/${NAMESPACE}/${PROVIDER_NAME}/${VERSION}/" +mc policy set public "$PUBLIC_TARGET" >/dev/null || true + +echo "Published single page: https://${REGISTRY_HOST}/docs/${NAMESPACE}/${PROVIDER_NAME}/${VERSION}/${page}" diff --git a/scripts/publish-docs.sh b/scripts/publish-docs.sh new file mode 100755 index 0000000..cac1916 --- /dev/null +++ b/scripts/publish-docs.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Usage: publish-docs.sh +SITE_DIR=${1:-site} +REGISTRY_HOST=${2:-terra.k8c.ru} +NAMESPACE=${3:-nubes} +NAME=${4:-nubes} +VERSION=${5:-dev} + +# S3-only variables +ENDPOINT=${S3_ENDPOINT:-} +ACCESS_KEY=${S3_ACCESS_KEY:-} +SECRET_KEY=${S3_SECRET_KEY:-} + +if [ -z "$ENDPOINT" ] || [ -z "$ACCESS_KEY" ] || [ -z "$SECRET_KEY" ]; then + echo "Error: S3_ENDPOINT/S3_ACCESS_KEY/S3_SECRET_KEY must be set" + exit 2 +fi + +MC_ALIAS=registry +mc alias set $MC_ALIAS "$ENDPOINT" "$ACCESS_KEY" "$SECRET_KEY" --api S3v4 +TARGET="${MC_ALIAS}/terraform-registry/docs/${NAMESPACE}/${NAME}/${VERSION}/" + +# Create target bucket path if needed (mc will create directories implicitly when copying) +mc cp --recursive "$SITE_DIR/" "$TARGET" +# Optionally set public policy +mc policy set public "$TARGET" || true + +echo "Published docs to: https://${REGISTRY_HOST}/docs/${NAMESPACE}/${NAME}/${VERSION}/" diff --git a/scripts/s3_notification_example.sh b/scripts/s3_notification_example.sh new file mode 100644 index 0000000..96cf0e5 --- /dev/null +++ b/scripts/s3_notification_example.sh @@ -0,0 +1,91 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Пример настройки bucket notifications через mc (S3-compatible) +# Запускать НА УДАЛЁННОЙ машине. +# +# Пример: +# export S3CFG=/home/naeel/terra/terraform/secrets/.s3cfg_registry +# export BUCKET=buck +# export TARGET_ARN='arn:minio:sqs::primary:webhook' +# export EVENTS='put,delete' +# bash scripts/s3_notification_example.sh +# +# Где TARGET_ARN — уже существующий target в конфигурации S3/MinIO. + +S3CFG="${S3CFG:-/home/naeel/terra/terraform/secrets/.s3cfg_registry}" +BUCKET="${BUCKET:-}" +TARGET_ARN="${TARGET_ARN:-}" +EVENTS="${EVENTS:-put}" # put | delete | get | put,delete +PREFIX="${PREFIX:-}" # опционально, напр. uploads/ +SUFFIX="${SUFFIX:-}" # опционально, напр. .jpg +ALIAS_NAME="${ALIAS_NAME:-regnotif}" + +if ! command -v mc >/dev/null 2>&1; then + echo "ERROR: mc не установлен" + exit 1 +fi + +if [[ ! -f "$S3CFG" ]]; then + echo "ERROR: не найден S3CFG: $S3CFG" + exit 1 +fi + +if [[ -z "$BUCKET" ]]; then + echo "ERROR: задайте BUCKET" + exit 1 +fi + +if [[ -z "$TARGET_ARN" ]]; then + echo "ERROR: задайте TARGET_ARN (например arn:minio:sqs::primary:webhook)" + exit 1 +fi + +# Читаем access_key/secret_key/host_base из .s3cfg +# shellcheck disable=SC2016 +readarray -t CFG_LINES < <(python3 - </dev/null 2>&1 || true +mc alias set "$ALIAS_NAME" "https://$HOST_BASE" "$ACCESS_KEY" "$SECRET_KEY" >/dev/null + +echo "[1/3] Текущие notification-правила в бакете $BUCKET:" +mc event ls "$ALIAS_NAME/$BUCKET" || true + +echo "[2/3] Добавление правила: events=$EVENTS target=$TARGET_ARN" +EVENT_FLAGS=() +IFS=',' read -r -a EVENT_ARRAY <<< "$EVENTS" +for ev in "${EVENT_ARRAY[@]}"; do + EVENT_FLAGS+=("--event" "$ev") +done + +FILTER_FLAGS=() +if [[ -n "$PREFIX" ]]; then + FILTER_FLAGS+=("--prefix" "$PREFIX") +fi +if [[ -n "$SUFFIX" ]]; then + FILTER_FLAGS+=("--suffix" "$SUFFIX") +fi + +mc event add "$ALIAS_NAME/$BUCKET" "$TARGET_ARN" "${EVENT_FLAGS[@]}" "${FILTER_FLAGS[@]}" + +echo "[3/3] Проверка после добавления:" +mc event ls "$ALIAS_NAME/$BUCKET" + +echo "OK: правило уведомлений настроено" diff --git a/services.tsv b/services.tsv new file mode 100644 index 0000000..088b905 --- /dev/null +++ b/services.tsv @@ -0,0 +1,24 @@ +1 dummy +114 GiteaComplex +115 mariadb +116 kafka +117 nifi +12 s3 +13 s3bucket +21 vc_vdc +22 vc_nsxt +25 vcexternalip +26 vapp +28 vc_vm_v3 +81 superset +82 harbor +89 flask +90 postgres +91 redis +92 mongodb +93 rabbitmq +94 lucee +95 nodejs +96 pgadmin +97 nodered +99 gitea diff --git a/services_raw.json b/services_raw.json new file mode 100644 index 0000000..0981fba --- /dev/null +++ b/services_raw.json @@ -0,0 +1 @@ +{"queryDurationMs":64,"total":44,"resultSetSize":44,"pageSize":100,"page":1,"orderBy":"","size":44,"results":[{"isProductionReady":true,"man":"Перед разворачиванием убедиться, что в облаке есть 2 свободных невыделенных IP в пуле","dtUpdated":"2025-08-26T15:48:07.904+0300","version":"1.0.0","sort":null,"dtCreated":"2025-06-09T15:37:50.547+0300","svcShort":"k8sSthutrvalCluster","resourceRealmTypeId":3,"code":"paas.k8s.stw","orchestratorName":"SthutrvalCluster","svcId":150,"svc":"Kubernetes кластер Штурвал","svcExtendedName":"Kubernetes кластер Штурвал k8sSthutrvalCluster ","descr":"Платформа управления K8s
","resourceRealmCnt":2,"synonyms":null},{"isProductionReady":true,"man":"# Инструкция по развертыванию Тенант Valo через платформу

## 1. Общая информация
Тенант Valo — логический изолированный экземпляр сервиса VALO Cloud, предоставляющий защищённое облачное хранилище, синхронизацию данных и доступ к документам с различных устройств. При создании тенант автоматически разворачивается в тестовом режиме сроком на 2 месяца. Перевод в промышленную эксплуатацию выполняется отдельной операцией.

### Доступные операции

* **create** — создание нового тенанта в тестовом режиме сроком на 2 месяца.
* **modify** — изменение настроек тенанта, включая перевод из ТЕСТ в ПРОД.
* **suspend** — выключение (приостановка работы) тенанта.
* **resume** — включение ранее приостановленного тенанта.
* **delete** — удаление тенанта; доступно только после выполнения операции suspend.

---

## 2. Параметры развертывания

Параметры входных данных операции **create**:

### Платформа для развертывания
Описание: платформа, на которой будет создан тенант.
Пример значения: `valo.ngcloud.ru`.

### DNS-Префикс
Описание: Будет добавлено в зону valo.ngcloud.ru
Пример значения: `mysimpledomain`.

### Параметры хранилища
Описание: Сколько места будет выделено под использование в тенанте. Данные хранятся в S3. Размер указывается в Gigabytes
Пример значения: `10`.

### Настройки тенанта
Описание: Ряд конфигурации Valo-тенанта, такие как настройки пользователя и доступного функционала
Пример значения: `опционально в рамках настройки`.

---

## 3. Рекомендованные характеристики

### Тестовое окружение
Достаточно развернуть тенант в ТЕСТ. Срок предоставляется в 2 месяца. По истечению срока тенант автоматически переводится в `suspend` на стороне ресурсной платформы

### Промышленное окружение
Для разблокировки используйте операцию `modify`

---

## 4. Выходные параметры

Услуга предоставляет следующие выходные параметры (формируются в процессе операций):

### Статус тенанта
Отражает текущее состояние и параметры.

---

## 5. Дополнительная информация
Тенант всегда создаётся в режиме ТЕСТ и не может быть сразу переведён в ПРОД без операции modify.
Удаление тенанта возможно только после его выключения с помощью операции suspend.
Срок тестового режима составляет 2 месяца с момента создания.
Операции suspend и resume используются для временного управления доступностью сервиса без потери конфигурации.
","dtUpdated":"2026-01-30T11:52:53.792+0300","version":"0.0.1","sort":null,"dtCreated":"2025-12-04T18:48:01.093+0300","svcShort":"valoTenant","resourceRealmTypeId":8,"code":null,"orchestratorName":"Tenant","svcId":149,"svc":"VALO Cloud","svcExtendedName":"VALO Cloud valoTenant ","descr":"Корпоративная система обмена и синхронизации файлов","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"# Инструкция по управлению кластерами и пользователями ClickHouse

---

## Общая информация

ClickHouse — это колоночная система управления базами данных, предназначенная для обработки аналитических запросов в реальном времени. Платформа позволяет создавать, удалять, приостанавливать и возобновлять кластеры ClickHouse, а также управлять базами данных и пользователями.

Кластер создаётся через оператор Altinity (`https://github.com/Altinity/clickhouse-operator`) в ресурсной платформе типа `k8s`

Кластеры могут создаваться шардированными с произвольным количеством реплик. Для обеспечения отказоустойчивости и координации обязательно включение параметра `Создать ClickHouse-Keeper`.

Кластера создаются с обязательным бекапом. Для этого необходимо предварительно создать услугу `S3 Object Storage`.
---

## Доступные операции

* **create** — Создание кластера
* **delete** — Удаление кластера
* **suspend** — Приостановка работы кластера
* **resume** — Возобновление работы кластера
* **create_database** — Создание базы данных
* **delete_database** — Удаление базы данных
* **create_user** — Создание пользователя и настройка прав доступа к базе данных
* **delete_user** — Удаление пользователя

## Процесс создания и первого подключения

1. Выполнить операцию `create` - будет создан кластер
2. Выполнить операцию `create_database` - будет создана база данных
3. Выполнить операцию `create_user` - будет создан пользователь (выбрать доступ подключения к БД, созданной в п.2)

## Примеры подключения

### Подключение через HTTP-интерфейс

```bash
# Проверка доступности кластера
curl "http://<username>:<password>@<host>:8123/" -d "SELECT 1"

# Выполнение запроса
curl "http://<username>:<password>@<host>:8123/" -d "SHOW DATABASES"
```

## Простые кейсы
*Создать БД и обычной таблицы*
```clickhouse
CREATE TABLE database.table
(
id UInt64,
value String
)
ENGINE = MergeTree()
ORDER BY id;

INSERT INTO database.table SELECT number, toString(number) FROM numbers(10000000);

SELECT count() FROM database.table;
```
Базы и таблицы не реплицируются без специального ключа (`ON CLUSTER 'clickhousek8s'`)
В случае создания в стиле, описанным выше, необходимо будет выполнять действия на всех шардах/репликах


*Создание БД и шардированной таблицы*
```clickhouse
CREATE TABLE database.localUsers
(
id UInt64,
value String
)
ENGINE = MergeTree()
ORDER BY id;

CREATE TABLE database.shardedTable
AS localUsers
ENGINE = Distributed('clickhousek8s', 'database', 'localUsers', id);

INSERT INTO shardedTable SELECT number, toString(number) FROM numbers(10000000);

SELECT count() FROM shardedTable;
```
Важный момент - в данном примере таблицы придётся также выполнять на всех нодах ClickHouse

*Создание реплицируемой и шардированной таблицы*
```clickhouse
CREATE TABLE IF NOT EXISTS database.localUsers ON cluster 'clickhousek8s'
(
user_id UInt64,
name String,
email String
)
ENGINE = ReplicatedMergeTree(
'/clickhouse/tables/{shard}/localUsers',
'{replica}'
)
ORDER BY user_id;

CREATE TABLE IF NOT EXISTS database.users ON cluster 'clickhousek8s'
AS database.localUsers
ENGINE = Distributed('clickhousek8s', 'database', 'localUsers', rand());

INSERT INTO database.users VALUES (1, 'Alice', 'alice@example.com');
INSERT INTO database.users VALUES (2, 'Bob', 'bob@example.com');
INSERT INTO database.users VALUES (3, 'Charlie', 'charlie@example.com');
INSERT INTO database.users VALUES (4, 'David', 'david@example.com');
INSERT INTO database.users VALUES (5, 'Gosha', 'gosha@example.com');
INSERT INTO database.users VALUES (6, 'Eve', 'eve@example.com');
INSERT INTO database.users VALUES (7, 'Frank', 'frank@example.com');
INSERT INTO database.users VALUES (8, 'Grace', 'grace@example.com');
INSERT INTO database.users VALUES (9, 'Hannah', 'hannah@example.com');
INSERT INTO database.users VALUES (10, 'Ivan', 'ivan@example.com');

SELECT * FROM database.localUsers;
SELECT * FROM database.users;

SELECT COUNT(*) AS total_users FROM database.users;
SELECT COUNT(*) AS total_users_local FROM database.localUsers;
```","dtUpdated":"2026-01-30T11:43:54.356+0300","version":"0.0.3","sort":null,"dtCreated":"2025-11-13T13:14:48.087+0300","svcShort":"clickhouse","resourceRealmTypeId":3,"code":null,"orchestratorName":"ClickHouse","svcId":120,"svc":"ClickHouse","svcExtendedName":"ClickHouse clickhouse ","descr":"Управляемая база данных ClickHouse","resourceRealmCnt":2,"synonyms":null},{"isProductionReady":true,"man":"# Инструкция по развертыванию Apache Kafka через платформу

---
## 1. Общая информация
AKHQ — это веб-интерфейс для работы с кластерами Apache Kafka.
Позволяет просматривать топики, consumer group'ы, сообщения, ACL, схему безопасности, состояние брокеров и метаданные.
Поддерживает работу с несколькими кластерами Kafka одновременно, включая внутренние и внешние (TLS) подключения.

## Доступные операции
- **create** — Создание ресурса AKHQ
- **suspend** — Остановка ресурса
- **resume** — Возобновление работы ресурса
- **modify** — Модификация настроек
- **delete** — Удаление ресурса

---
## 2. Параметры развертывания кластера
Ниже перечислены параметры, которые необходимо указать при создании ресурса Kafka:

* **Кластер Kafka к которому нужно настроить подключение**
Для использования AKHQ необходимо предварительно развернуть сервис Kafka. Пример: `kafka-external`.

* **Платформа для развертывания:**
Платформа для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.

* **Количество узлов в сети:**
Количество узлов для работы Akhq. Пример `2`

* **Квота (megabyte) памяти пода:**
Квота памяти пода в мегабайтах. Пример: `512`

* **Квота (millicore ) ядра пода:**
Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `500`

* **Имя домена:**
Dns Имя по которому будет происходить обращение к сервису. Указать необходимо уникальное имя до . ( то есть если необходимо получить dns ui) Пример: `kafka-external`

---
## 4. Выходные параметры
После успешного развертывания ресурса Kafka платформа возвращает ряд параметров.
Ключевым из них является:

**connectionUrl**
Это полное доменное имя (FQDN), по которому будет доступен интерфейс AKHQ. После развёртывания подождите несколько минут — UI станет доступен по HTTPS, как только все сервисы полностью запустятся.

**Учетные данные**
Здесь представлены поля для ввода логина и пароля, с помощью которых вы сможете авторизоваться в сервисе.

---
## 5. Дополнительная информация
Учётные записи, созданные для работы с AKHQ, предоставляют доступ только для просмотра данных. Для управления Kafka, пожалуйста, используйте возможности личного кабинета.
---","dtUpdated":"2026-01-30T11:45:52.760+0300","version":"0.0.1","sort":null,"dtCreated":"2025-10-22T15:24:29.300+0300","svcShort":"Akhq","resourceRealmTypeId":3,"code":null,"orchestratorName":"Akhq","svcId":119,"svc":"Akhq","svcExtendedName":"Akhq Akhq ","descr":"Web интерфейс Akhq для работы с Apache Kafka","resourceRealmCnt":2,"synonyms":null},{"isProductionReady":false,"man":null,"dtUpdated":"2026-01-30T11:57:58.051+0300","version":"null","sort":null,"dtCreated":"2025-12-22T18:06:47.213+0300","svcShort":"nifi","resourceRealmTypeId":3,"code":null,"orchestratorName":"Nifi","svcId":117,"svc":"Nifi","svcExtendedName":"Nifi nifi ","descr":"ETL-система","resourceRealmCnt":2,"synonyms":null},{"isProductionReady":true,"man":"# Инструкция по развертыванию Организация в Cloud Director через платформу

## 1. Общая информация

Сервис **Организация в Cloud Director** предназначен для управления изолированными организационными единицами (тенантами) внутри инфраструктуры Cloud Director. Он обеспечивает создание, модификацию и администрирование организаций, предоставление им облачных ресурсов, а также контроль уровня доступа. Сервис используется для организации рабочих окружений потребителей, управления жизненным циклом организаций и их сетевой инфраструктурой.

### Доступные операции

**create** — Создание новой организации с заданными характеристиками и типом доступа.
**delete** — Удаление организации после перехода в состояние suspend; приводит к удалению всех связанных сущностей.
**modify** — Изменение параметров внутри организации (на текущий момент поддерживается изменение ipSpaces).
**suspend** — Заморозка организации, ограничение возможности изменения и добавления сущностей.
**resume** — Разморозка организации, восстановление функций управления.

---

## 2. Параметры развертывания

Параметры входных данных операции **create**:

### Платформа для развертывания
Описание: платформа, на которой будет создана организация.
Пример значения: `ngcloud.ru`.

### Тип организации
Описание: тип создаваемой организации.
Варианты:
- `iaas` — организация с прямым доступом к облаку и авторизацией через Keycloak.
- `saas` — организация под управлением Nubes, без прямого доступа к облаку.

---

## 3. Рекомендованные характеристики

### Тестовое окружение
- Тип организации: `iaas` для обеспечения полного доступа к облачным ресурсам и самостоятельного управления.

### Промышленное окружение
- Тип организации: `saas` (упрощённая модель использования).

---

## 4. Выходные параметры

Услуга предоставляет следующие выходные параметры (формируются в процессе операций):

### Идентификатор организации
Уникальный идентификатор созданной организации. Используется для всех дальнейших API-операций.

### Статус организации
Отражает текущее состояние: active, suspended, modifying, deleting.

### Параметры сети
Выходные данные при наличии ipSpaces: список выделенных внешних IP, имя ip_space, количество IP.

---

## 5. Дополнительная информация

- Для конфигурации внешних IP внутри организации необходимо предварительно создать:
-- хотя бы один **Виртуальный датацентр (VDC)**;
-- хотя бы один **Сетевой шлюз периметра (Edge Gateway)**, привязанный к этой организации.
- Удаление организации возможно только через 14 дней после перевода в состояние suspend.
- Удаление организации приводит к удалению всех связанных сущностей: VDC, Edge Gateway, пулов IP, сетей, ВМок и иных объектов.
- Операция suspend не останавливает виртуальные машины, но блокирует любые изменения инфраструктуры внутри организации.
- Для iaas-организаций доступ осуществляется через Keycloak.

","dtUpdated":"2025-12-10T18:40:39.469+0300","version":"0.0.2","sort":null,"dtCreated":"2025-09-22T14:07:55.358+0300","svcShort":"kafka","resourceRealmTypeId":3,"code":null,"orchestratorName":"Kafka","svcId":116,"svc":"ApacheKafka","svcExtendedName":"ApacheKafka kafka ","descr":"Сервис создания кластера Apache Kafka","resourceRealmCnt":2,"synonyms":null},{"isProductionReady":true,"man":"Mariadb кластер. Ресурсная платформа: k8s. Автоматизация: k8s operator.
Автоматическое резервное копирование, ручное восстановление.","dtUpdated":"2025-11-11T13:37:48.549+0300","version":"0.0.4","sort":null,"dtCreated":"2025-08-26T12:01:05.074+0300","svcShort":"mariadb","resourceRealmTypeId":3,"code":"paas.mysql.0","orchestratorName":"Mariadb","svcId":115,"svc":"Mariadb","svcExtendedName":"Mariadb mariadb ","descr":"Управляемая база данных MySQL","resourceRealmCnt":2,"synonyms":null},{"isProductionReady":false,"man":"Комплексная услуга из ["gittea", "postgres"]","dtUpdated":"2025-08-28T12:12:50.814+0300","version":"master","sort":null,"dtCreated":"2025-06-30T12:16:12.397+0300","svcShort":"GiteaComplex","resourceRealmTypeId":3,"code":null,"orchestratorName":"GiteaComplex","svcId":114,"svc":"Комплексная услуга по созданию gitea","svcExtendedName":"Комплексная услуга по созданию gitea GiteaComplex ","descr":"Комплексная услуга из ["gittea", "postgres"]","resourceRealmCnt":2,"synonyms":null},{"isProductionReady":true,"man":"# Создает окружение для ВМ.

## Создает сервисы:
**Организация**
**Виртуальный датацентр**
**Каталог**
**Сетевой шлюз периметра**

","dtUpdated":"2025-10-03T01:32:21.969+0300","version":"0.0.5","sort":null,"dtCreated":"2025-05-28T11:58:56.391+0300","svcShort":"vcComplex","resourceRealmTypeId":2,"code":null,"orchestratorName":"Complex","svcId":113,"svc":"Быстрый старт","svcExtendedName":"Быстрый старт vcComplex ","descr":"Создание готовой иерархии ресурсов","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":false,"man":null,"dtUpdated":"2026-01-30T13:19:30.993+0300","version":"0.0.7","sort":null,"dtCreated":"2025-03-10T17:47:48.965+0300","svcShort":"tenant","resourceRealmTypeId":6,"code":null,"orchestratorName":"Tenant","svcId":112,"svc":"Тенант в Grafana","svcExtendedName":"Тенант в Grafana tenant ","descr":"Организация доступов к мониторингу","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"Необходима DNS зона, в которой будет создана DNS запись.
Выберите
* Зону в которой будет создана запись
* Тип записи
* Имя записи
* Значение записи","dtUpdated":"2025-08-26T15:54:29.943+0300","version":"1.0.4","sort":null,"dtCreated":"2024-09-17T14:22:05.028+0300","svcShort":"dnsrecord","resourceRealmTypeId":4,"code":null,"orchestratorName":"Records","svcId":111,"svc":"DNS запись","svcExtendedName":"DNS запись dnsrecord ","descr":"DNS запись в созданной зоне","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"## ![image](https://img.icons8.com/?size=50&id=41400&format=png) Необходимо делегировать зону у регистратора на Авторитетные DNS (Сервера зон)

ns3.ngcloud.ru
``` bash
185.247.187.83
2a10:aa80:0:5::3
```

ns4.ngcloud.ru
``` bash
81.22.46.43
2a10:aa80:0:6::3
```","dtUpdated":"2025-08-26T15:33:39.433+0300","version":"1.0.3","sort":null,"dtCreated":"2024-09-16T18:52:52.357+0300","svcShort":"dnszone","resourceRealmTypeId":4,"code":null,"orchestratorName":"Zones","svcId":110,"svc":"DNS зона","svcExtendedName":"DNS зона dnszone ","descr":"Хостинг DNS зоны","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":false,"man":"Добавление и удаления пользователя для работы с Openwhisk","dtUpdated":"2025-04-21T09:24:43.629+0300","version":null,"sort":null,"dtCreated":"2024-09-12T13:43:55.166+0300","svcShort":"openwhisk","resourceRealmTypeId":5,"code":null,"orchestratorName":"OpenWhisk","svcId":100,"svc":"Serverless Openwhisk (openwhisk_tenant)","svcExtendedName":"Serverless Openwhisk (openwhisk_tenant) openwhisk ","descr":"Добавление и удаления пользователя (учетной записи, тенанта) для работы с Openwhisk","resourceRealmCnt":0,"synonyms":null},{"isProductionReady":true,"man":"Развертывает сервис контроля версий Gitea
Зависит от сервиса postgresql который должен быть развернут заранее.","dtUpdated":"2025-08-26T17:02:22.326+0300","version":"0.0.7","sort":null,"dtCreated":"2025-02-27T11:03:34.956+0300","svcShort":"gitea","resourceRealmTypeId":3,"code":null,"orchestratorName":"Gitea","svcId":99,"svc":"Gitea","svcExtendedName":"Gitea gitea ","descr":"Сервис контроля версий","resourceRealmCnt":2,"synonyms":null},{"isProductionReady":true,"man":null,"dtUpdated":"2025-08-26T17:02:46.347+0300","version":"0.0.8","sort":null,"dtCreated":"2025-02-25T11:39:20.377+0300","svcShort":"http","resourceRealmTypeId":3,"code":null,"orchestratorName":"SimpleHttpContainer","svcId":98,"svc":"Простой HTTP контейнер","svcExtendedName":"Простой HTTP контейнер http ","descr":null,"resourceRealmCnt":2,"synonyms":null},{"isProductionReady":false,"man":null,"dtUpdated":"2025-12-08T11:45:13.148+0300","version":"0.0.1","sort":null,"dtCreated":"2025-02-05T14:31:17.734+0300","svcShort":"nodered","resourceRealmTypeId":3,"code":null,"orchestratorName":"NodeRed","svcId":97,"svc":"NodeRed","svcExtendedName":"NodeRed nodered ","descr":"Low-code платформа для IoT","resourceRealmCnt":2,"synonyms":null},{"isProductionReady":true,"man":"Инструмент с графическим интерфейсом для управления базами данных PostgreSQL","dtUpdated":"2025-10-03T01:45:00.194+0300","version":"0.0.7","sort":null,"dtCreated":"2024-11-26T15:31:21.713+0300","svcShort":"pgadmin","resourceRealmTypeId":3,"code":null,"orchestratorName":"Pgadmin","svcId":96,"svc":"pgAdmin","svcExtendedName":"pgAdmin pgadmin ","descr":"Административный интерфейс для PostgreSQL","resourceRealmCnt":2,"synonyms":null},{"isProductionReady":true,"man":"Развертывает контейнер в k8s кластере с node:16, который можно использовать для запуска своих приложений.
Приложение должно быть доступно по ссылки в git репозитории, которая является входным параметром.","dtUpdated":"2025-08-26T15:24:09.869+0300","version":"0.0.10","sort":null,"dtCreated":"2024-11-22T10:47:39.940+0300","svcShort":"nodejs","resourceRealmTypeId":3,"code":null,"orchestratorName":"Node","svcId":95,"svc":"NodeJS","svcExtendedName":"NodeJS nodejs ","descr":"Cервер приложений","resourceRealmCnt":2,"synonyms":null},{"isProductionReady":true,"man":null,"dtUpdated":"2025-08-26T15:23:32.093+0300","version":"0.0.15","sort":null,"dtCreated":"2024-10-02T17:33:55.713+0300","svcShort":"lucee","resourceRealmTypeId":3,"code":null,"orchestratorName":"Lucee","svcId":94,"svc":"Lucee","svcExtendedName":"Lucee lucee ","descr":"Cервер приложений","resourceRealmCnt":2,"synonyms":null},{"isProductionReady":true,"man":"# Инструкция по развертыванию RabbitMQ через платформу

---
## 1. Общая информация
RabbitMQ — это брокер сообщений с открытым исходным кодом, который обеспечивает надёжную доставку сообщений между приложениями.
Позволяет надёжно передавать сообщения между сервисами и системами, интегрироваться с внешними решениями и использовать как внутренние, так и защищённые TLS-подключения. Развёртывание полностью автоматизировано платформой.

## Доступные операции
- **create** — Создание кластера
- **modify** — Изменение параметров кластера
- **delete** — Удаление кластера
- **suspend** — Остановка кластера
- **resume** — Запуск кластера


---
## 2. Параметры развертывания кластера
Ниже перечислены параметры, которые необходимо указать при создании ресурса RabbitMQ:

* **Платформа для развертывания:**
Платформа для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.

* **Количество узлов в сети:**
Количество реплик в кластере RabbitMQ. При значении больше 1 создаётся кластер с репликацией для обеспечения высокой доступности.
Пример: `1` (single node) или `3` (кластер с репликацией)

* **Квота (megabyte) памяти пода:**
Квота памяти пода в мегабайтах. Пример: `2048`

* **Квота (millicore) ядра пода:**
Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `1000`

* **Размер (gigabyte) диска для базы данных:**
Размер диска для хранения данных RabbitMQ в гигабайтах. Пример: `50`

* **Выделяет внешний IP для доступа к master:**
Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-узлу. При включении создаётся Service типа LoadBalancer и настраивается VIP на порту 5672.
Пример: `true` или `false`

* **Имя ipSpace для публикации внешнего IP master:**
Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`


---
## 3. Модификация кластера
Операция **modify** позволяет изменить параметры существующего кластера RabbitMQ.

**Изменяемые параметры:**
* **Квота (megabyte) памяти пода** — можно увеличить или уменьшить
* **Квота (millicore) ядра пода** — можно увеличить или уменьшить
* **Размер (gigabyte) диска для базы данных** — можно только увеличить (уменьшение не поддерживается)
* **Количество узлов в сети** — можно только увеличить (уменьшение не поддерживается)
* **Выделяет внешний IP для доступа к master** — можно включить или выключить
* **Имя ipSpace для публикации внешнего IP master** — можно изменить при включенном внешнем IP

**Ограничения:**
* Уменьшение размера диска не поддерживается
* Уменьшение количества реплик не поддерживается

---
## 4. Выходные параметры
После успешного развертывания ресурса RabbitMQ платформа возвращает ряд параметров в разделе "Поля состояния (сгенерированные значения)":

**clusterDomain**
Домен кластера Kubernetes, в котором развернут RabbitMQ.
Пример: `cluster.local`

**inernalConnect**
Внутренние эндпоинты для подключения к кластеру RabbitMQ из других сервисов, развернутых внутри той же сети.
Содержит:
* **master** — FQDN для подключения к кластеру. Пример: `rabbitmqk8s.{namespace}.svc.{clusterDomain}`

**externalConnect**
Внешние эндпоинты для подключения к кластеру RabbitMQ извне.
Содержит объекты с полями:
* **admin** — доступ к веб-интерфейсу управления:
* `fqdn` — полное доменное имя для веб-интерфейса. Пример: `admin.{namespace}.{domain}`
* `ip` — IP-адрес
* **master** — доступ к AMQP протоколу (если включен внешний IP):
* `fqdn` — полное доменное имя для AMQP. Пример: `write.{namespace}.{domain}`
* `ip` — IP-адрес

**monitoring**
Информация о дашбордах мониторинга:
* **allDashboards** — URL для доступа ко всем дашбордам Grafana

Для подключения используются следующие порты:

* **5672** — AMQP протокол (внутренний и внешний доступ, если включен внешний IP)
* **15672** — веб-интерфейс управления (доступен через Ingress по HTTPS)

**Учётные данные**
Данные для подключения к RabbitMQ доступны в разделе "Учётные данные":
* **adminUser** — имя пользователя администратора
* **adminPass** — пароль администратора


---
## 5. Примеры подключения через консоль (rabbitmqadmin)

### Работа с очередями через rabbitmqadmin

Для работы с RabbitMQ через консоль используется утилита `rabbitmqadmin`. Установите её или используйте образ с предустановленной утилитой.

Задайте переменные окружения с учётными данными:

```bash
export RABBITMQ_USERNAME=<adminUser>
export RABBITMQ_PASSWORD=<adminPass>
export RABBIT_HOST=<host>
```

Где:
* `<adminUser>` и `<adminPass>` — учётные данные из раздела "Учётные данные"
* `<host>` — адрес для подключения:
* Для внешнего подключения: `externalConnect.admin.fqdn` или `externalConnect.master.fqdn`

**Создание очереди:**

```bash
rabbitmqadmin \\
-H "$RABBIT_HOST" -P 15672 \\
-u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \\
declare queue name=healthcheck durable=false
```

**Листинг очередей:**

```bash
rabbitmqadmin \\
-H "$RABBIT_HOST" -P 15672 \\
-u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \\
list queues
```

**Отправка сообщения:**

```bash
rabbitmqadmin \\
-H "$RABBIT_HOST" -P 15672 \\
-u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \\
publish exchange=amq.default routing_key=healthcheck payload="ping-$(date +%s)"
```

**Чтение сообщения:**

```bash
rabbitmqadmin \\
-H "$RABBIT_HOST" -P 15672 \\
-u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \\
get queue=healthcheck ackmode=ack_requeue_false
```

---
## 6. Дополнительная информация
Для подключения к кластеру RabbitMQ используйте полученные эндпоинты из раздела "Поля состояния (сгенерированные значения)" и учётные данные из раздела "Учётные данные".

Веб-интерфейс управления доступен по адресу, указанному в параметре `externalConnect.admin.fqdn` через HTTPS.

Для внутреннего подключения используйте адрес из `inernalConnect.master` на порту 5672.

---","dtUpdated":"2025-12-23T17:55:10.562+0300","version":"1.0.0","sort":null,"dtCreated":"2024-09-06T18:34:29.581+0300","svcShort":"rabbitmq","resourceRealmTypeId":3,"code":null,"orchestratorName":"Rabbitmq","svcId":93,"svc":"RabbitMQ","svcExtendedName":"RabbitMQ rabbitmq ","descr":"Сервер очередей","resourceRealmCnt":2,"synonyms":null},{"isProductionReady":true,"man":"# Инструкция по развертыванию MongoDB через платформу

## 1. Общая информация

MongoDB — документоориентированная распределённая база данных, обеспечивающая высокую доступность, горизонтальное масштабирование и гибкую модель хранения.

### Доступные операции с кластером

* **create** — создание кластера
* **delete** — удаление кластера
* **suspend** — остановка кластера
* **resume** — запуск кластера

### Доступные операции с пользователями

* **create_user** — создание пользователя
* **modify_user** — модификация пользователя
* **delete_user** — удаление пользователя

---

## 2. Параметры развертывания кластера

Эти параметры необходимо указать при создании кластера.

### Платформа для развертывания

Среда, в которой будет развернут кластер. Выбирается из предложенного списка.

### Количество узлов

Оптимально выбирать нечётное количество узлов в кластере MongoDB, так как это обеспечивает корректный процесс выбора ведущего узла и сохраняет работоспособность кластера даже при отказе одной из нод.

### Квота памяти пода (MB)

Объём памяти для одного пода в мегабайтах.
Пример: `2048`

### Квота CPU пода (mCPU)

CPU-квота для пода в миликорах (1000 mCPU = 1 vCPU).
Пример: `1000`

### Размер диска для базы данных (GB)

Объём диска для хранения данных в гигабайтах.
Пример: `20`

### Выделение внешнего IP для доступа к master

Флаг, определяющий необходимость выделения внешнего IP.
Допустимые значения: `true` или `false`

### Имя ipSpace для публикации внешнего IP

Указывается только если включено выделение внешнего IP.
Пример: `internet-no-antiddos-v1`

---

## 3. Параметры создания пользователя

### Имя пользователя

Указывается имя пользователя (любой регистр).
Пример: `readApp`

### Имя базы данных

Название базы, в которой будет создан пользователь.
Если база отсутствует, она будет создана автоматически.
Пример: `Apps_9392`

### Имя роли

* **read** — доступ только на чтение
* **readWrite** — чтение и изменение данных
* **dbOwner** — полный контроль над базой данных

---

## 4. Параметры модификации пользователя

### Имя пользователя

Необходимо выбрать существующего пользователя.
Если список пуст, требуется предварительно создать пользователя.

### Имя базы данных

База данных, к которой относится пользователь.
Если база отсутствует, она будет создана автоматически.
Пример: `Apps_9392`

### Имя роли

* **read**
* **readWrite**
* **dbOwner**

---

## 5. Параметры удаления пользователя

### Имя пользователя

Выберите пользователя из списка для удаления.

---

## 6. Выходные параметры

После успешного развертывания кластера платформа возвращает ключевые параметры.

### internalConnect

Внутренний эндпоинт для подключения к кластеру из сервисов, работающих в той же сети.
Используется для внутренних интеграций и системных сервисов.

### externalConnect

Внешний FQDN для подключения к кластеру извне.
Порт подключения — **27017**.

---

## 7. Пример подключения

Перед подключением необходимо установить **mongosh**.

Команда подключения к базе данных:

```
mongosh "mongodb://<username>:<password>@<endpoint_db>:27017/<dbName>"
```

Где:

* `<username>` — имя пользователя
* `<password>` — пароль
* `<endpoint_db>` — internalConnect или externalConnect
* `<dbName>` — имя базы данных

## 8. Дополнительная информация

Сейчас соединение с базой работает без шифрования, и доступ к кластеру осуществляется только по логину и паролю.","dtUpdated":"2025-12-01T12:55:06.401+0300","version":"0.0.1","sort":null,"dtCreated":"2024-09-06T12:20:04.433+0300","svcShort":"mongodb","resourceRealmTypeId":3,"code":"paas.mngo.0","orchestratorName":"MongoDB","svcId":92,"svc":"MongoDB","svcExtendedName":"MongoDB mongodb ","descr":"Управляемая база данных MongoDB","resourceRealmCnt":2,"synonyms":null},{"isProductionReady":true,"man":"Redis кластер. Под кеши.
Ресурсная платформа: k8s.
Автоматизация: k8s operator
port 6379","dtUpdated":"2025-08-26T15:40:53.298+0300","version":"0.0.10","sort":null,"dtCreated":"2024-07-09T18:41:46.951+0300","svcShort":"redis","resourceRealmTypeId":3,"code":null,"orchestratorName":"Redis","svcId":91,"svc":"Redis","svcExtendedName":"Redis redis ","descr":"Управляемая база данных Redis","resourceRealmCnt":2,"synonyms":null},{"isProductionReady":true,"man":"PostgreSQL кластер. Ресурсная платформа: k8s. Автоматизация: k8s operator.
Автоматическое резервное копирование, ручное восстановление.","dtUpdated":"2025-09-24T13:18:13.443+0300","version":"0.0.10","sort":null,"dtCreated":"2024-07-08T11:22:38.929+0300","svcShort":"postgres","resourceRealmTypeId":3,"code":"paas.pg.0","orchestratorName":"Pgsql","svcId":90,"svc":"PostgreSQL","svcExtendedName":"PostgreSQL postgres ","descr":"Управляемая база данных PostgreSQL","resourceRealmCnt":2,"synonyms":null},{"isProductionReady":true,"man":null,"dtUpdated":"2025-09-29T17:22:19.947+0300","version":"0.0.4","sort":null,"dtCreated":"2025-04-03T13:26:27.166+0300","svcShort":"flask","resourceRealmTypeId":3,"code":"paas.flsk.0","orchestratorName":"Flask","svcId":89,"svc":"Flask","svcExtendedName":"Flask flask ","descr":null,"resourceRealmCnt":2,"synonyms":null},{"isProductionReady":false,"man":null,"dtUpdated":"2025-07-08T17:38:52.475+0300","version":"0.0.1","sort":null,"dtCreated":"2025-05-14T16:06:14.130+0300","svcShort":"k8sZitiController","resourceRealmTypeId":3,"code":null,"orchestratorName":"ZitiController","svcId":88,"svc":"k8sZitiController","svcExtendedName":"k8sZitiController k8sZitiController ","descr":"Контроллер управления Client to service & service to service Zero trust network
","resourceRealmCnt":2,"synonyms":null},{"isProductionReady":true,"man":"Расширенный реестр для управления Docker-образами с enterprise-функциями безопасности, репликации и контроля доступа.
Container Registry позволяет хранить, развертывать и управлять Docker-образами контейнеров в инфраструктуре NGcloud.
Сервис можно использовать в процессе разработки контейнеров. Например, вы можете настроить систему автоматизации на работу с реестром в Container Registry в рамках процесса непрерывной интеграции. Контейнеры идеально подходят для запуска небольших, независимых и легко изменяемых сервисов.
Чтобы начать работу, создайте реестр и загрузите в него Docker-образ
Авторизация: keycloak","dtUpdated":"2025-10-03T01:41:06.043+0300","version":"0.0.9","sort":null,"dtCreated":"2024-06-19T23:07:00.955+0300","svcShort":"harbor","resourceRealmTypeId":3,"code":null,"orchestratorName":"Registry","svcId":82,"svc":"Container Registry","svcExtendedName":"Container Registry harbor ","descr":"Реестр для хранения образов контейнеров","resourceRealmCnt":2,"synonyms":null},{"isProductionReady":true,"man":"Apache Superset как сервис.
Ресурсная платформа: k8s.
Автоматизация: k8s operator.
Авторизация: 2FA keycloak (для доменного логина @mgmt.nubes.ru)","dtUpdated":"2025-08-26T15:01:07.187+0300","version":"0.0.8","sort":null,"dtCreated":"2024-06-11T11:05:39.952+0300","svcShort":"superset","resourceRealmTypeId":3,"code":null,"orchestratorName":"Superset","svcId":81,"svc":"Apache Superset","svcExtendedName":"Apache Superset superset ","descr":"Сервер отчетов","resourceRealmCnt":2,"synonyms":null},{"isProductionReady":true,"man":"Ресурсная платформа: k8s. Автоматизация: helm chart","dtUpdated":"2025-08-26T15:02:57.739+0300","version":"0.0.9","sort":null,"dtCreated":"2024-07-04T22:23:46.807+0300","svcShort":"nextcloud","resourceRealmTypeId":3,"code":null,"orchestratorName":"Nextcloud","svcId":50,"svc":"Nextcloud","svcExtendedName":"Nextcloud nextcloud ","descr":"Платформа совместной работы","resourceRealmCnt":2,"synonyms":null},{"isProductionReady":false,"man":"Сервис настройки PostgreSQL для виртуальной машины.
Требует наличия ВМ","dtUpdated":"2025-04-21T09:26:12.228+0300","version":null,"sort":null,"dtCreated":"2024-08-05T12:47:46.275+0300","svcShort":"vmpostgre","resourceRealmTypeId":2,"code":null,"orchestratorName":"VmPostgre","svcId":32,"svc":"vc_vm_postgresql_std","svcExtendedName":"vc_vm_postgresql_std vmpostgre ","descr":"Сервис настройки PostgreSQL для виртуальной машины.
Требует наличия ВМ","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"# Инструкция по развертыванию Группа виртуальных датацентров (groupvDC) через платформу

## 1. Общая информация

Сервис **Группа виртуальных датацентров (groupvDC)** предназначен для логического объединения нескольких виртуальных датацентров (vDC) в единую группу. Это позволяет растягивать SDN между разными vDC и централизованно управлять сетевой связностью. Управление инфраструктурой осуществляется через Cloud Director.
Сервис применяется в случаях, когда требуется обеспечить единое сетевое пространство для распределенных виртуальных датацентров.

### Доступные операции

**create** — Создание новой группы виртуальных датацентров.
**delete** — Удаление существующей группы vDC.
**add_vdc** — Добавление дополнительного виртуального датацентра в группу.
**remove_vdc** — Удаление ранее добавленного виртуального датацентра из группы.

---

## 2. Параметры развертывания

Параметры операции **create**:

### UUID VDC
Идентификатор виртуального датацентра, который будет являться первичным в группе.
Описание: требуется предварительно создать виртуальный датацентр с помощью услуги `Виртуальный датацентр (vDC)`.

---

## 3. Рекомендованные характеристики

### Тестовое окружение
- Для тестового окружения создавать группу VDC нет необходимости, так как это создаёт дополнительный слой абстракции в Cloud Director

### Промышленное окружение
- Для промышленного окружения, если в тенанте существуют разные VDC, создание groupvdc позволит снизить сетевые издержки (за счёт общей сети)

---

## 4. Выходные параметры

### Параметры groupvdc
Набор параметров, указанных пользователем при создании

---

## 5. Дополнительная информация
- Группа vDC используется для растягивания SDN между несколькими виртуальными датацентрами. Управление всеми сетевыми элементами внутри группы выполняется Cloud Director.
- Удалить первичный vDC (тот, что был указан при операции **create**) невозможно. Для его удаления необходимо удалить всю группу и создать новую.
- Перед добавлением любого vDC в группу он должен быть предварительно развернут через сервис `Виртуальный датацентр (vDC)`.
- Сети создаются не в этой услуге, а в услуге `Сетевой шлюз периметра (Edge)`. В ней необходимо будет выбрать тип `groupvdc`","dtUpdated":"2026-01-30T12:32:41.484+0300","version":"0.0.1","sort":null,"dtCreated":"2025-11-18T13:43:02.522+0300","svcShort":"vcVdcGroup","resourceRealmTypeId":2,"code":null,"orchestratorName":"VdcGroup","svcId":29,"svc":"Группа датацентров","svcExtendedName":"Группа датацентров vcVdcGroup ","descr":"Обеспечение сетевой доступности между датацентрами","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"# Документация по разворачиванию ВМ в Личном кабинете

Данный сервис позволяет разворачивать виртуальные машины (ВМ) непосредственно из Личного кабинета (ЛК).

## Доступные операции
- **create** — Создание виртуальной машины
- **delete** — Удаление виртуальной машины
- **resume** — Запуск виртуальной машины
- **suspend** — Остановка виртуальной машины

---

## Параметры для развёртывания ВМ

### Обязательные параметры:

**vappUid**
UUID vApp, в которой будет создаваться виртуальная машина.
*Пример: WZ00400*

**vmName**
Уникальное имя виртуальной машины.
*Пример: test-vm*

**vmCpu**
Количество ядер процессора. Должно быть больше 0.
*Пример: 1*

**vmRam**
Объем оперативной памяти в гигабайтах. Должно быть больше 0.
*Пример: 1*


**accessPortList**
Белый список портов для доступа к виртуальной машине извне в формате JSON.
*Пример: ["22","10050]*

**imageVm**
Образ операционной системы для развёртывания.
*Доступные значения: RockyLinux_9-16G-cloudinit, Ubuntu_22-20G, Debian_13-20G*

**userLogin**
Логин пользователя для SSH-доступа.
*По умолчанию: myuser*

**userPublicKey**
Публичный SSH-ключ пользователя в формате OpenSSH.
*Пример: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...*

**needAddZabbixTemplate**
Значение истина\\ложь, определяющее будет ли добавлен хост в zabbix.
*Пример: true*

### Опциональные параметры:

**accessIpList**
Белый список IP-адресов для доступа к виртуальной машине в формате JSON. Если оставить пустым, вм будет доступена со всех адресов.
*Пример: ["192.168.1.1", "10.0.0.5"]*

**vmDisk**
Размер дополнительного диска в гигабайтах. Должно быть больше 0.
*Пример: 50*

**ipSpaceName**
Внешний IP-адрес. Если не требуется — укажите значение "no-needed" (В нем не будет работать сбор метрик zabbix).

**cloudInit**
YAML-скрипт для кастомизации системы через cloud-init.

---

## Доступные образы операционных систем

### RockyLinux_9-16G-cloudinit
Базовый образ на основе Rocky Linux 9 (Rocky-9.6-x86_64-minimal) для серверных задач.
- Размер системного диска: 16 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

### Ubuntu_22-20G
Образ на основе Ubuntu Server 22.04 LTS для облачного окружения.
- Размер системного диска: 20 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

### Debian_13-20G
Образ на основе Debian 13 (Trixie) для стабильной серверной работы.
- Размер системного диска: 20 ГБ
- Поддержка cloud-init
- Минимальные требования: 1 vCPU, 1 ГБ RAM

---

## Пример использования Cloud-init

```yaml
users:
- name: myuser
sudo: ALL=(ALL) NOPASSWD:ALL
groups: sudo
shell: /bin/bash
ssh-authorized-keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...

packages:
- nginx

runcmd:
- systemctl enable --now nginx
- systemctl restart nginx
```

---

## Результат выполнения

После успешного развёртывания в Личном кабинете появится новая виртуальная машина с заданными характеристиками. SSH-доступ осуществляется с использованием указанных логина и публичного ключа.

---

## Важные примечания

### Особенности работы:
- Для отключения внешнего IP укажите значение "no-needed" в параметре ipSpaceName
- Параметр cloudInit является опциональным

### Ограничения:
- Не рекомендуется использовать продолжительные инструкции в cloud-init (таймаут 5 минут)
- Не поддерживается запись файлов через cloud-init
- Не реализовано создание резервных копий ВМ

---

## Диагностика проблем с cloud-init

### Основной лог-файл:
```bash
/var/log/cloud-init.log
```

### Пакет не устанавливается:
- Проверьте доступность пакета в репозитории
- Убедитесь в правильности написания имени пакета
- Попробуйте установить вручную: `apt install <имя_пакета>` (Debian/Ubuntu) или `dnf install <имя_пакета>` (Rocky Linux)

### Команда не выполняется:
- Проверьте наличие требуемой утилиты в системе
- Убедитесь в правильности синтаксиса команды
- Попробуйте выполнить команду вручную для диагностики","dtUpdated":"2025-12-11T16:03:13.558+0300","version":"0.0.8","sort":260,"dtCreated":"2025-08-08T17:25:18.609+0300","svcShort":"vc_vm_v3","resourceRealmTypeId":2,"code":null,"orchestratorName":"VmV3","svcId":28,"svc":"Виртуальная машина","svcExtendedName":"Виртуальная машина vc_vm_v3 ","descr":"Создание виртуальной машины","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":false,"man":null,"dtUpdated":"2025-08-26T16:18:40.865+0300","version":"0.0.1","sort":240,"dtCreated":"2025-05-14T16:04:15.732+0300","svcShort":"vc_vm_v2","resourceRealmTypeId":2,"code":null,"orchestratorName":"VmV2","svcId":27,"svc":"VM в Cloud Director (vc_vmV2)","svcExtendedName":"VM в Cloud Director (vc_vmV2) vc_vm_v2 ","descr":"Виртуальная машина с возможностью настройки Cloud Init
Можно развернуть в услуге несколько ВМ
В зависимости от настроек можно выдавать на ВМ vip + dns","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"# Инструкция по развертыванию Виртуальный каталог ВМ (vApp) через платформу

## 1. Общая информация

**Виртуальный каталог ВМ (vApp)** — это логическая каталог, объединённая в единый управляемый объект. Сервис предназначен для совместного развертывания, управления жизненным циклом и сетевого взаимодействия набора связанных ВМ. Основные функции включают:
- централизованное управление включением, выключением и приостановкой группы ВМ;
- унифицированный сетевой доступ через привязанный Edge-шлюз;

### Доступные операции

**create** — Создание нового vApp с привязкой к заданным услугам VDC и Edge
**delete** — Удаление существующего vApp. Требуется предварительный перевод vApp в состояние *suspend*. Полное удаление возможно через 14 дней.
**suspend** — Остановка vApp (выключение всех ВМ внутри каталога)
**resume** — Запуск vApp (включение всех ВМ внутри каталога)

---

## 2. Параметры развертывания

Параметры берутся из операции **create**.

### UUID Услуги VDC
Уникальный идентификатор услуги «Виртуальный датацентр (vDC)».
Используется для определения вычислительной инфраструктуры, в которой будет развернут vApp.

### UUID Услуги Edge
Уникальный идентификатор услуги «Сетевой шлюз периметра (Edge)».
Обеспечивает маршрутизацию и сетевое подключение. Может быть привязан к группе VDC, поэтому выбирается отдельно.

### Имя vApp
Строгое имя, соответствующее маске формирования DNS-имени.
Используется как часть в DNS-имени при создании виртуальных машин.

---

## 3. Рекомендованные характеристики
Так как является промежуточным этапом для создания ВМ, все характеристики описываются в услуге `Виртуальная машина`

---

## 4. Выходные параметры

### Параметры vApp
Заданные при создании vApp

---

## 5. Дополнительная информация

- Привязка к VDC и Edge осуществляется раздельно, поскольку один Edge может обслуживать несколько VDC (через услугу `Группа виртуальных датацентров (groupvDC)`). Это гарантирует возможность развернуть ВМ в единой сети, но в разных виртуальных датацентрах.
- Перед удалением vApp необходимо вручную перевести его в состояние **suspend**. Удаление возможно только спустя 14 дней после этого шага.
- Операция delete удаляет весь vApp полностью, включая все виртуальные машины, связанные с ним.
- Рекомендуется заранее планировать сетевые связи и назначения DNS-имён для обеспечения корректной работы сервисов, развернутых внутри vApp.
- При проектировании инфраструктуры следует учитывать зависимости между Edge-шлюзом, VDC и размещаемыми ВМ, чтобы избежать ограничений при масштабировании и интеграции.","dtUpdated":"2025-12-11T15:37:54.155+0300","version":"0.0.7","sort":230,"dtCreated":"2024-12-18T13:41:42.516+0300","svcShort":"vapp","resourceRealmTypeId":2,"code":null,"orchestratorName":"Vapp","svcId":26,"svc":"Виртуальный каталог ВМ (vApp)","svcExtendedName":"Виртуальный каталог ВМ (vApp) vapp ","descr":"Группировка виртуальных машин","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"**Обычно эта услуга разворачивается автоматически при развёртывании более сложных услуг**
Вручную создавать можно, однако услуга требует много параметров, о которых можно просто не знать

Резервировать публичные IP адреса можно только после создания NGcloud Organization, NGcloud Виртуальный датацентр, NGcloud Каталог, Сетевой шлюз периметра.
Вы можете назначить IP адрес для существующего экземпляра сервиса.","dtUpdated":"2025-11-21T12:46:13.588+0300","version":"0.0.9","sort":270,"dtCreated":"2024-11-14T17:26:51.661+0300","svcShort":"vcexternalip","resourceRealmTypeId":2,"code":null,"orchestratorName":"Ip","svcId":25,"svc":"Публичные IP адреса","svcExtendedName":"Публичные IP адреса vcexternalip ","descr":"Резервирование IP адреса","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":false,"man":"Правила маршрутизации в Cloud Director. Требует наличие сетей, ВМ
DEPRECATED","dtUpdated":"2024-12-09T14:45:51.227+0300","version":null,"sort":null,"dtCreated":"2024-08-02T16:55:59.120+0300","svcShort":null,"resourceRealmTypeId":null,"code":null,"orchestratorName":null,"svcId":24,"svc":"DEPRECATED Правила маршрутизации для VM (vc_nat)","svcExtendedName":"DEPRECATED Правила маршрутизации для VM (vc_nat) ","descr":"Правила маршрутизации в Cloud Director. Требует наличие сетей, ВМ
DEPRECATED","resourceRealmCnt":0,"synonyms":null},{"isProductionReady":false,"man":"Виртуальная машина без каких-либо особенностей.
Данная услуга запускает vc_ip для выдачи белого адреса и подключения к ВМ","dtUpdated":"2025-08-26T16:15:24.964+0300","version":"0.0.3","sort":250,"dtCreated":"2024-08-02T12:53:13.869+0300","svcShort":"vc_vm","resourceRealmTypeId":2,"code":null,"orchestratorName":"Vm","svcId":23,"svc":"VM в Cloud Director (старый формат) (vc_vm)","svcExtendedName":"VM в Cloud Director (старый формат) (vc_vm) vc_vm ","descr":"Виртуальная машина без каких-либо особенностей.
Данная услуга запускает vc_ip для выдачи белого адреса и подключения к ВМ","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"# Инструкция по развертыванию Сетевой шлюз периметра (Edge) через платформу

## 1. Общая информация

Сервис **Сетевой шлюз периметра (Edge)** предназначен для создания периметрового сетевого шлюза в рамках одного виртуального датацентра (vDC) или группы виртуальных датацентров (groupvDC).
При создании автоматически разворачивается routed-сеть с адресным пространством `10.10.102.0/24`.
Сервис обеспечивает сетевую изоляцию, маршрутизацию, а также может включать функциональность балансировщика нагрузки AVI (ALB) для последующей интеграции, включая поддержку кластеров Штурвал.

### Доступные операции

**create** — Создание нового Edge с привязкой к vDC или groupvDC и развёртыванием routed-сети.
**delete** — Удаление ранее созданного Edge. Недоступно при наличии зависимых услуг (vApp, VM, Кластер Штурвал).
**modify** — Изменение параметров и сетевых настроек существующего Edge.

---

## 2. Параметры развертывания

Ниже приведены параметры операции **create**.

### Тип родительской услуги
Определяет контекст размещения Edge.
Допустимые значения: `vdc`, `groupvdc`.
Использование:
- При выборе `vdc` обязателен параметр **UUID VDC**.
- При выборе `groupvdc` обязателен параметр **UUID Группы VDC**.

### UUID VDC
Идентификатор виртуального датацентра.
Необходимо предварительно создать vDC через услугу «Виртуальный датацентр (vDC)».
Указывается только при выборе родительского типа `vdc`.

### UUID Группы VDC
Идентификатор группы виртуальных датацентров.
Создаётся через услугу «Группа виртуальных датацентров (groupvDC)».
Используется при выборе родительского типа `groupvdc`.

### Включить ALB
Флаг активации AVI Load Balancer в Cloud Director.
Пример значения: `true`/`false`.
Нужен для развёртывания кластера Штурвал и возможности создания Virtual Services.

### Наименование segroup
Имя сервиса групп (segroup) на уровне ресурсной платформы.
Обязательно при включённом ALB.
Определяет группу, в которой будут выделяться пулы AVI для Virtual Services.

### virtualServicesCount
Количество резервируемых виртуальных сервисов (Virtual Services) на AVI.
Типичное значение: 1–10 в зависимости от нагрузки.

---

## 3. Рекомендованные характеристики

### Тестовое окружение (Test)

- Тип родительской услуги: `vdc`
- virtualServicesCount: 1–2
- ALB: выключен по умолчанию (включать только при необходимости тестирования Штурвала)
- segroup: задаётся только при включённом ALB
- VDC гарантии CPU/RAM: минимальные (поскольку изменить их после создания нельзя)

### Промышленное окружение (Production)

- Тип родительской услуги: `groupvdc` при работе с распределёнными нагрузками или `vdc` для локализованных проектов
- virtualServicesCount: 3–10, исходя из предполагаемого количества публикаций
- ALB: включён, если требуется высокая доступность сервисов или используется кластер Штурвал
- segroup: рекомендуется использовать выделенную группу под проект
- VDC гарантии CPU/RAM: повышенные, с учётом того, что изменить их после создания невозможно без пересоздания vDC

---

## 4. Выходные параметры

### Имя Edge
Уникальное название созданного сетевого шлюза, используется для ссылок и дальнейших операций.

### Имя routed-сети
Автоматически созданная routed-сеть с подсетью `10.10.102.0/24`, используется для подключения ресурсов.

### Параметры Edge
Набор параметров, указанных пользователем при создании: тип услуги, ALB, segroup, virtualServicesCount и др.
Используются в операциях modify и для анализа состояния сервиса.

---

## 5. Дополнительная информация

- В рамках сервиса **один раз при создании задаётся гарантированная доля CPU/RAM vDC**. Изменить её невозможно — требуется пересоздание vDC.
- Удаление Edge недоступно при наличии зависимых ресурсов (vApp, VM, кластер Штурвал).
- При использовании ALB необходимо корректно указывать segroup, чтобы обеспечить корректное выделение пулов AVI.
- При выборе режима `groupvdc` следует учитывать распределение нагрузки между несколькими vDC.
- SNAT для всех ресурсов внутри Edge можно активировать через операцию modify (параметры выделения VIP и ipSpace).

","dtUpdated":"2025-12-11T12:43:51.799+0300","version":"0.0.8","sort":220,"dtCreated":"2024-05-23T09:31:52.029+0300","svcShort":"vc_nsxt","resourceRealmTypeId":2,"code":null,"orchestratorName":"Nsxt","svcId":22,"svc":"Сетевой шлюз периметра (Edge)","svcExtendedName":"Сетевой шлюз периметра (Edge) vc_nsxt ","descr":"Обеспечение сетевой доступности в тенанте","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"# Инструкция по развертыванию Виртуальный датацентр (vDC) через платформу

## 1. Общая информация

**Виртуальный датацентр (vDC)** — это логическая изолированная среда в VMware Cloud Director, предназначенная для размещения и управления виртуальными машинами, сетевой инфраструктурой и ресурсами хранения. Сервис обеспечивает выделение вычислительных ресурсов под конкретную организацию и предоставляет гибкие параметры масштабирования, контроля потребления и разделения ресурсов.

### Доступные операции

**create** — Создание виртуального датацентра (vDC) с заданными параметрами CPU, RAM, Storage и сетевой конфигурацией.
**delete** — Удаление vDC. Требуется предварительный перевод vDC в состояние *suspend*. Полное удаление возможно через 14 дней.
**modify** — Внесение изменений в параметры ресурсов (CPU/RAM/Storage), выделенных для vDC.
**suspend** — Заморозка vDC. Новые ресурсы или изменения внутри vDC становятся невозможными, работа ВМ не останавливается.
**resume** — Разморозка vDC. Восстановление возможности управления сущностями внутри vDC.

---

## 2. Параметры развертывания

Ниже перечислены входные параметры операции **create**.

### UUID Организации
Уникальный идентификатор организации в Cloud Director. Перед созданием vDC требуется предварительное создание услугу `Организация в Cloud Director`.

### Provider VDC в Cloud Director
Свойство ресурсной платформы, определяющее, какой пул физических ресурсов будет использоваться.

### Network Pool в Cloud Director
Определяет возможности сетевой конфигурации, включая создание Edge Gateway и выход во внешние сети.

### Гарантированная доля ЯДЕР
Гарантированный процент вычислительных ресурсов (CPU), закрепленный за vDC. Значение устанавливается разово при создании.

### Гарантированная доля ОЗУ
Гарантированный процент оперативной памяти, закрепленный за vDC. Также задаётся один раз при создании.

### Сколько аллоцировать на VDC ЯДЕР
Количество виртуальных ядер, выделяемых в рамках vDC.

### Сколько аллоцировать на VDC ОЗУ
Количество оперативной памяти в GB, выделяемой для vDC.

### Конфигурация Storage
Набор дисковых политик и их объёмов, выделяемых для vDC. Указывается имя политики и требуемый размер (GB).

---

## 3. Рекомендованные характеристики

### Тестовое окружение

- Количество ядер CPU: 10–20
- Аллоцируемая RAM: 16–64 GB
- Гарантированная доля CPU: 20%
- Гарантированная доля RAM: 20%
- Storage:
- Политика `SATA`
- Объём: 100–300 GB

### Промышленное окружение

- Количество ядер CPU: 16–128
- Аллоцируемая RAM: 64–512 GB
- Гарантированная доля CPU: 50%
- Гарантированная доля RAM: 50%
- Storage:
- Политики уровня `SSD`
- Объём: 1–10 TB, выбор несколько политик под разные нагрузки

---

## 4. Выходные параметры

Выходные параметры формируются операцией **create** (и используются другими операциями):

### Имя vDC
Уникальный идентификатор созданного виртуального датацентра. Используется в дальнейших операциях (modify, suspend, delete).

### Параметры выделенных ресурсов
Подтверждение итогового объёма CPU/RAM/Storage, выделенных vDC. Используются для учёта и контроля потребления.

---

## 5. Дополнительная информация

- Перед созданием vDC необходимо обеспечить наличие корректно созданной организации и доступных пула ресурсов ресурсной платформы.
- Гарантированная доля CPU и RAM задаётся **однократно при создании vDC**. После развертывания изменить эти значения невозможно; для изменения необходимо пересоздать vDC.
- Удаление vDC возможно только через **14 дней после перевода в состояние *suspend***. Удаление очищает все связанные сущности (ВМ, сети, каталоги), поэтому необходимо убедиться, что данные перенесены.
- Платформа Cloud Director использует концепцию изолированных организационных ресурсов, поэтому корректная настройка Provider VDC и Network Pool является обязательной при создании vDC.
- При изменении параметров (modify) изменяются только показатели CPU, RAM и Storage. Сетевые параметры и гарантированные доли остаются неизменными.
","dtUpdated":"2025-12-11T12:33:52.619+0300","version":"1.0.4","sort":210,"dtCreated":"2024-05-23T09:31:52.029+0300","svcShort":"vc_vdc","resourceRealmTypeId":2,"code":null,"orchestratorName":"Vdc","svcId":21,"svc":"Виртуальный датацентр (vDC)","svcExtendedName":"Виртуальный датацентр (vDC) vc_vdc ","descr":"Выделение вычислительных ресурсов","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":false,"man":"Верхнеуровневая сущность создаваемая для Заказчика.
Внутри Организация вы можете создать: Виртуальные датацентры, Каталоги.","dtUpdated":"2025-10-29T22:52:10.890+0300","version":"1.0.0","sort":200,"dtCreated":"2024-05-23T09:31:52.029+0300","svcShort":"vcOrgSaas","resourceRealmTypeId":2,"code":null,"orchestratorName":"OrgSaas","svcId":20,"svc":"Организация [DEPRECATED]","svcExtendedName":"Организация [DEPRECATED] vcOrgSaas ","descr":"Без интеграции Keycloak","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"# Инструкция по развертыванию Организация в Cloud Director через платформу

## 1. Общая информация

Сервис **Организация в Cloud Director** предназначен для управления изолированными организационными единицами (тенантами) внутри инфраструктуры Cloud Director. Он обеспечивает создание, модификацию и администрирование организаций, предоставление им облачных ресурсов, а также контроль уровня доступа. Сервис используется для организации рабочих окружений потребителей, управления жизненным циклом организаций и их сетевой инфраструктурой.

### Доступные операции

**create** — Создание новой организации с заданными характеристиками и типом доступа.
**delete** — Удаление организации после перехода в состояние suspend; приводит к удалению всех связанных сущностей.
**modify** — Изменение параметров внутри организации (на текущий момент поддерживается изменение ipSpaces).
**suspend** — Заморозка организации, ограничение возможности изменения и добавления сущностей.
**resume** — Разморозка организации, восстановление функций управления.

---

## 2. Параметры развертывания

Параметры входных данных операции **create**:

### Платформа для развертывания
Описание: платформа, на которой будет создана организация.
Пример значения: `ngcloud.ru`.

### Тип организации
Описание: тип создаваемой организации.
Варианты:
- `iaas` — организация с прямым доступом к облаку и авторизацией через Keycloak.
- `saas` — организация под управлением Nubes, без прямого доступа к облаку.

---

## 3. Рекомендованные характеристики

### Тестовое окружение
- Тип организации: `iaas` для обеспечения полного доступа к облачным ресурсам и самостоятельного управления.

### Промышленное окружение
- Тип организации: `saas` (упрощённая модель использования).

---

## 4. Выходные параметры

Услуга предоставляет следующие выходные параметры (формируются в процессе операций):

### Url организации
Для быстрого доступа в тенант

### Статус организации
Отражает текущее состояние и параметры.

---

## 5. Дополнительная информация

- Для конфигурации внешних IP внутри организации необходимо предварительно создать:
-- хотя бы один **Виртуальный датацентр (VDC)** привязанный к этой организации;
-- хотя бы один **Сетевой шлюз периметра (Edge Gateway)**, привязанный к vdc выше.
- Удаление организации возможно только через 14 дней после перевода в состояние suspend.
- Удаление организации приводит к удалению всех связанных сущностей: VDC, Edge Gateway, пулов IP, сетей, ВМок и иных объектов.
- Операция suspend не останавливает виртуальные машины, но блокирует любые изменения инфраструктуры внутри организации.
- Для iaas-организаций доступ осуществляется через Keycloak.","dtUpdated":"2025-12-11T12:31:16.343+0300","version":"1.0.1","sort":201,"dtCreated":"2025-08-18T16:45:06.350+0300","svcShort":"vcOrg","resourceRealmTypeId":2,"code":null,"orchestratorName":"Org","svcId":19,"svc":"Организация в Cloud Director","svcExtendedName":"Организация в Cloud Director vcOrg ","descr":null,"resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":null,"dtUpdated":"2025-08-26T17:48:40.297+0300","version":"1.0.3","sort":110,"dtCreated":"2024-10-17T16:37:15.020+0300","svcShort":"s3bucket","resourceRealmTypeId":1,"code":null,"orchestratorName":"Bucket","svcId":13,"svc":"S3 бакет","svcExtendedName":"S3 бакет s3bucket ","descr":"Бакет в сервисе S3","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":"Руководство доступно по ссылке:
https://docs.s3.msk-1.ngcloud.ru/s3/s3.description.html","dtUpdated":"2025-08-26T14:48:30.886+0300","version":"1.0.5","sort":100,"dtCreated":"2024-05-23T09:31:52.029+0300","svcShort":"s3","resourceRealmTypeId":1,"code":"paas.s3.ceph","orchestratorName":"Ceph","svcId":12,"svc":"S3 Object Storage","svcExtendedName":"S3 Object Storage s3 ","descr":"Масштабируемое хранилище данных","resourceRealmCnt":1,"synonyms":null},{"isProductionReady":true,"man":null,"dtUpdated":"2025-08-26T15:18:55.340+0300","version":"0.0.7","sort":1010,"dtCreated":"2025-02-12T18:35:47.513+0300","svcShort":"template","resourceRealmTypeId":3,"code":null,"orchestratorName":"Template","svcId":2,"svc":"Темплейт k8s","svcExtendedName":"Темплейт k8s template ","descr":"Болванка для тестирования","resourceRealmCnt":2,"synonyms":null},{"isProductionReady":true,"man":"## Болванка для тестов.

А это просто много букв, чтобы посмотреть, как ведет себя текст при переполнении контейнера.


``` json
{
"iamServiceUrl": "https://auth-api-test.ngcloud.ru/api/v1/user",
"idpResponse": {
"prefix": {
"charset": "",
"status_text": "Request Time-out",
"text": true,
"errordetail": "",
"filecontent": "Connection Timeout",
"responseheader": {},
"header": "",
"statuscode": "408 Request Time-out",
"status_code": 408,
"mimetype": "Unable to determine MIME type of file."
}
}
}
```","dtUpdated":"2025-07-09T14:07:44.022+0300","version":"1.0.2","sort":1000,"dtCreated":"2024-05-23T09:31:52.029+0300","svcShort":"dummy","resourceRealmTypeId":7,"code":null,"orchestratorName":"Service","svcId":1,"svc":"Болванка","svcExtendedName":"Болванка dummy ","descr":"Болванка для тестов","resourceRealmCnt":1,"synonyms":null}],"runDurationMs":68} \ No newline at end of file diff --git a/state_keys_instances.json b/state_keys_instances.json new file mode 100644 index 0000000..1329669 --- /dev/null +++ b/state_keys_instances.json @@ -0,0 +1,1254 @@ +[ + { + "uid": "70d56396-bc05-4e7e-9e58-6e09dd913652", + "serviceId": 150 + }, + { + "uid": "9d7d37ff-d50f-4660-9247-55a6ce80551b", + "serviceId": 150 + }, + { + "uid": "b1c54787-8729-4264-811a-24b2936fc304", + "serviceId": 150 + }, + { + "uid": "bd1d689e-bce2-4792-9f1f-73cd1d6c7de7", + "serviceId": 116 + }, + { + "uid": "2eb2dc97-6658-4b36-b266-ef5698400158", + "serviceId": 115 + }, + { + "uid": "29f85c8e-430b-4b12-a72a-b5da70424966", + "serviceId": 113 + }, + { + "uid": "87ae9002-4f97-487b-a986-69ad61c9d3dc", + "serviceId": 111 + }, + { + "uid": "b488c8d4-82bc-4991-9844-eaab3859146f", + "serviceId": 111 + }, + { + "uid": "c0e5b324-fecb-4acf-9e21-2de0e7ba08a7", + "serviceId": 111 + }, + { + "uid": "2806c223-08b0-4020-a8c7-681639e7ef24", + "serviceId": 111 + }, + { + "uid": "aa9b8cdd-f7ff-4991-86d5-f0c223e1be2f", + "serviceId": 111 + }, + { + "uid": "958a91e8-57c3-435f-a921-8d29b60e1c96", + "serviceId": 111 + }, + { + "uid": "9cd4f4f0-32b4-408f-acbc-bfeab7617e5c", + "serviceId": 111 + }, + { + "uid": "d1fa455a-19a1-4810-8fb5-3bb2e798ec94", + "serviceId": 111 + }, + { + "uid": "7e759307-3d70-44bc-95ff-2c681c473845", + "serviceId": 111 + }, + { + "uid": "edb88b5c-af1e-4499-9392-e1b8fbca2558", + "serviceId": 111 + }, + { + "uid": "d7e840c4-8ec4-4d58-96bf-331a9588255a", + "serviceId": 111 + }, + { + "uid": "fe45d9c7-90b6-40f6-ac12-8f6708198493", + "serviceId": 111 + }, + { + "uid": "a3e07c4f-e2ba-45ed-b83f-137eb418a4d9", + "serviceId": 111 + }, + { + "uid": "7bdb595f-6bc4-498e-993f-b7edf63ddeba", + "serviceId": 111 + }, + { + "uid": "cc77e244-1854-4bc9-8cbc-da1ec0b85d1f", + "serviceId": 111 + }, + { + "uid": "bbb8ba37-2fd8-4b38-b389-ad4e8f31544d", + "serviceId": 111 + }, + { + "uid": "6ff6d822-7e56-4fc0-83e6-387847b2e110", + "serviceId": 111 + }, + { + "uid": "b926db0d-d0e1-411c-b1b4-77f3b609d9c5", + "serviceId": 111 + }, + { + "uid": "0afbd3cc-70ab-42b4-94da-910dfd38a9a6", + "serviceId": 111 + }, + { + "uid": "f7946b1c-a845-4ed0-9bac-1e38aed56e5b", + "serviceId": 111 + }, + { + "uid": "c1895a53-a8b1-4255-81da-c1225bf890d6", + "serviceId": 111 + }, + { + "uid": "a41979e7-824a-4aea-a707-46b92726ed82", + "serviceId": 111 + }, + { + "uid": "5337bf52-bf5f-4f39-9eb0-2d25c8d881ec", + "serviceId": 111 + }, + { + "uid": "18210b92-0115-420b-b55e-b65cac91def9", + "serviceId": 111 + }, + { + "uid": "0a74f641-e520-4042-91df-a7231d3cdf1d", + "serviceId": 111 + }, + { + "uid": "f89a1419-5bd8-4275-b680-aa7805cf8c89", + "serviceId": 111 + }, + { + "uid": "a2340cca-7be3-4e01-a319-c035ccd173dd", + "serviceId": 111 + }, + { + "uid": "4b203d07-460d-4281-a66e-3da965c077c2", + "serviceId": 111 + }, + { + "uid": "fa34ecf9-4c04-4de1-89bc-ce711f171ba7", + "serviceId": 111 + }, + { + "uid": "1444c498-e81e-4ed7-a768-537a6d490e02", + "serviceId": 111 + }, + { + "uid": "4c431b2c-cace-4334-8c28-2c80d47faced", + "serviceId": 111 + }, + { + "uid": "44f400a0-1bfd-424e-8ded-a384d4fb275c", + "serviceId": 111 + }, + { + "uid": "7846d5d4-929a-4d45-bb88-b56b0084f675", + "serviceId": 111 + }, + { + "uid": "5088d6f0-5891-4bf1-b7e2-a620585b4691", + "serviceId": 111 + }, + { + "uid": "62bc1a4d-2b5a-4dab-953f-e0d7a74799a3", + "serviceId": 111 + }, + { + "uid": "88743d7b-a9e1-4d1e-8930-91b2333fb4c1", + "serviceId": 111 + }, + { + "uid": "2f60c0b3-aeb0-4573-b45a-e3ada125a591", + "serviceId": 111 + }, + { + "uid": "6c3a7195-96c4-4677-8d5d-b7e47fabada5", + "serviceId": 111 + }, + { + "uid": "2ff6e3a8-d6a6-4f0a-a214-f005bb5c939e", + "serviceId": 111 + }, + { + "uid": "ddcb334d-4b5d-4ff8-95ae-0e88e7209c2d", + "serviceId": 111 + }, + { + "uid": "9563e11a-4c17-4ca4-aa29-4d5ebf57f00a", + "serviceId": 111 + }, + { + "uid": "495f7fc8-a73d-4ff0-aec2-3a4dd8c4b414", + "serviceId": 111 + }, + { + "uid": "8709a7eb-837b-4c30-9bca-dcbd18627043", + "serviceId": 111 + }, + { + "uid": "571c1f10-4f1e-4bb1-bfaa-aeaa47aab779", + "serviceId": 111 + }, + { + "uid": "7e759307-3d70-44bc-95ff-2c681c473845", + "serviceId": 111 + }, + { + "uid": "d1fa455a-19a1-4810-8fb5-3bb2e798ec94", + "serviceId": 111 + }, + { + "uid": "f6a24a6a-beb6-4078-b27b-ca92d3237689", + "serviceId": 111 + }, + { + "uid": "958a91e8-57c3-435f-a921-8d29b60e1c96", + "serviceId": 111 + }, + { + "uid": "9cd4f4f0-32b4-408f-acbc-bfeab7617e5c", + "serviceId": 111 + }, + { + "uid": "87ae9002-4f97-487b-a986-69ad61c9d3dc", + "serviceId": 111 + }, + { + "uid": "aa9b8cdd-f7ff-4991-86d5-f0c223e1be2f", + "serviceId": 111 + }, + { + "uid": "b488c8d4-82bc-4991-9844-eaab3859146f", + "serviceId": 111 + }, + { + "uid": "14a93bbb-ea04-41e2-8965-906ab67a9279", + "serviceId": 111 + }, + { + "uid": "b23c8eb4-ca3c-47de-aab1-1a26020de435", + "serviceId": 111 + }, + { + "uid": "f17cfa3e-20df-4e31-8d03-b5743f468e31", + "serviceId": 110 + }, + { + "uid": "0078125d-20a1-4a84-b528-3e036e78aedc", + "serviceId": 110 + }, + { + "uid": "4997c2a2-fbe9-46a8-80f5-601e8e902157", + "serviceId": 110 + }, + { + "uid": "ffc4d520-f61a-4d5a-b5cb-eacf5366e3c2", + "serviceId": 110 + }, + { + "uid": "2e71dcfa-73b2-4db8-b819-e38d8a3cb4a6", + "serviceId": 110 + }, + { + "uid": "40a15fe6-f943-4c1a-aa7a-04186f510e72", + "serviceId": 110 + }, + { + "uid": "094053f9-0acb-49c8-89da-e09e7a06f832", + "serviceId": 110 + }, + { + "uid": "498096ee-903f-48b4-b175-a79ec3efc52b", + "serviceId": 110 + }, + { + "uid": "f5ba0d72-e0d0-47cb-a7ab-19997bbbf62a", + "serviceId": 110 + }, + { + "uid": "e15e66e1-c613-4230-8f5e-263804224b0f", + "serviceId": 99 + }, + { + "uid": "b5d56909-b25c-4baf-8ce4-de2cfb519ca9", + "serviceId": 99 + }, + { + "uid": "119dadd8-7022-427d-8dcd-bc293624b4c6", + "serviceId": 99 + }, + { + "uid": "870c2fa3-5fe9-43eb-985f-7c6d8979968e", + "serviceId": 98 + }, + { + "uid": "40f67188-4f05-4c1b-bbc3-d59817cf250c", + "serviceId": 98 + }, + { + "uid": "a70021b9-902d-40e9-bffa-d41ede78b841", + "serviceId": 97 + }, + { + "uid": "ef20352e-855c-4b41-a74e-e7f95a2f4f17", + "serviceId": 96 + }, + { + "uid": "9d1a26a0-16e9-4c0f-8498-27edfb621e28", + "serviceId": 96 + }, + { + "uid": "738ddfec-f85d-4faf-80f4-80e9593f9457", + "serviceId": 96 + }, + { + "uid": "253c7edd-1472-47e2-b0cf-ea49d9501d61", + "serviceId": 96 + }, + { + "uid": "2d156030-dd85-468f-ac7e-a63e1060fd02", + "serviceId": 96 + }, + { + "uid": "426c5b36-908f-4083-bb00-e1f964802df8", + "serviceId": 96 + }, + { + "uid": "4b41bc20-c615-41ea-b1e6-48c4c97cd5c6", + "serviceId": 96 + }, + { + "uid": "a15cc266-de79-49c8-99b9-b85d2e0b0d1e", + "serviceId": 96 + }, + { + "uid": "490b8255-d0e0-41a3-9eed-f66024e3e4e8", + "serviceId": 96 + }, + { + "uid": "d614dc28-e3d7-4616-b986-fa2277e911c5", + "serviceId": 96 + }, + { + "uid": "6415e199-74d4-4acc-af15-5f406c7b3af3", + "serviceId": 96 + }, + { + "uid": "a0068c9a-ac8c-4792-8423-008211dbd2e8", + "serviceId": 96 + }, + { + "uid": "83914058-d3c3-4f23-bb36-777a824601ec", + "serviceId": 96 + }, + { + "uid": "1857e055-b606-4b90-926a-c5a8ef8ee70a", + "serviceId": 96 + }, + { + "uid": "72a6e474-a0c2-4eb1-8457-a466140e8159", + "serviceId": 96 + }, + { + "uid": "368d1f16-0c66-47b7-8afe-0206fda2e2ba", + "serviceId": 96 + }, + { + "uid": "f5a46223-7d08-4006-85f9-a86bcce20bb7", + "serviceId": 96 + }, + { + "uid": "46436960-1400-468c-83d2-35894cdff415", + "serviceId": 95 + }, + { + "uid": "b9013fe6-f5dc-4f7b-8ddc-5458835d3fd9", + "serviceId": 95 + }, + { + "uid": "b5c58586-a490-4734-8e5f-6a277ca3ae21", + "serviceId": 95 + }, + { + "uid": "b3a75608-d980-448d-9ea3-bb924357d994", + "serviceId": 94 + }, + { + "uid": "7cc7d4c1-4be7-43a7-b354-aaf05b556157", + "serviceId": 94 + }, + { + "uid": "e7ffd0db-f229-434c-8572-fd8137eb957c", + "serviceId": 94 + }, + { + "uid": "873b1a10-593c-4efc-bbdb-00b8daf3fda3", + "serviceId": 93 + }, + { + "uid": "3ec2d96d-a897-45ce-83ac-e7de3de01894", + "serviceId": 92 + }, + { + "uid": "e8f16cae-3668-4b8c-8119-6209d5a87fd7", + "serviceId": 91 + }, + { + "uid": "9835eb50-9ef8-47b2-aaf5-7ff92dbafd29", + "serviceId": 91 + }, + { + "uid": "ad0a2410-fba7-4b0a-9e6a-53b158884b1a", + "serviceId": 90 + }, + { + "uid": "f8bb2525-797e-428f-937a-d16e613f10af", + "serviceId": 90 + }, + { + "uid": "98c9012f-0cfb-40a4-87b0-e15796641e61", + "serviceId": 90 + }, + { + "uid": "5e71c188-e989-42d7-89ff-cc623d04f066", + "serviceId": 90 + }, + { + "uid": "f1e99959-39b7-47f2-8234-ef8bd4e2c14d", + "serviceId": 90 + }, + { + "uid": "3c0d27dc-640d-451d-9a15-d16fdcde4879", + "serviceId": 90 + }, + { + "uid": "70f921b1-12cf-4069-ae38-3aa9a7cf3df1", + "serviceId": 90 + }, + { + "uid": "5b141d60-547f-44fb-8169-f883d0199987", + "serviceId": 90 + }, + { + "uid": "69769b44-10cc-4116-87fa-93239350d5af", + "serviceId": 90 + }, + { + "uid": "48dbc644-9e45-418f-bd09-b65350159057", + "serviceId": 90 + }, + { + "uid": "b1d8ab38-bd8a-4be4-a27c-9b1a74dc0f19", + "serviceId": 90 + }, + { + "uid": "61f581c9-731f-4b7a-85e3-014bc3b7a955", + "serviceId": 90 + }, + { + "uid": "d6a6a6d3-2ed9-49ca-9620-7b9638e8f279", + "serviceId": 90 + }, + { + "uid": "32b7d8bb-80ed-435c-aaf0-d11bd76672bb", + "serviceId": 90 + }, + { + "uid": "3acee9fc-34a7-4c2c-8694-dc90cf2a82a8", + "serviceId": 90 + }, + { + "uid": "e1549cd3-7c0e-426b-937f-9e5aa897a68e", + "serviceId": 90 + }, + { + "uid": "e2b5c211-5b2b-43f0-ad28-cac3b87d4df7", + "serviceId": 90 + }, + { + "uid": "b31737f3-b792-4a43-83a9-fdd6452eb768", + "serviceId": 89 + }, + { + "uid": "55c4914e-7bc5-4bcc-bc71-2444025bc6fc", + "serviceId": 82 + }, + { + "uid": "ef431f65-a287-4af1-8a68-2ab6e808e518", + "serviceId": 82 + }, + { + "uid": "4ca0482e-3a5a-4648-9a39-4a9995c970a9", + "serviceId": 50 + }, + { + "uid": "e3ff4b3a-1236-4df7-ad88-c66142733bdb", + "serviceId": 28 + }, + { + "uid": "220160bb-5482-4912-8605-b5ed18b37de4", + "serviceId": 28 + }, + { + "uid": "905fb694-1db8-46d1-ae4f-0ded5b50648c", + "serviceId": 28 + }, + { + "uid": "fec8e342-9c25-485d-af89-a9dec38782b6", + "serviceId": 28 + }, + { + "uid": "51e4fc4f-74ef-4739-8888-1a08f1e4b1bf", + "serviceId": 28 + }, + { + "uid": "b0100d99-b2a1-4c7d-8f04-429101597860", + "serviceId": 28 + }, + { + "uid": "d5e146f4-be62-4f86-bbcc-e7e8f0567431", + "serviceId": 28 + }, + { + "uid": "df3f3b59-ef89-4efa-af26-f03e8f3158f4", + "serviceId": 28 + }, + { + "uid": "3c7dc106-0d04-4e7b-a91b-2f8243a41b78", + "serviceId": 28 + }, + { + "uid": "637ea670-db14-4f29-ba31-d8f9e562c4f4", + "serviceId": 28 + }, + { + "uid": "7899eda4-2663-4f49-86bd-b4bebc64055d", + "serviceId": 28 + }, + { + "uid": "7bc42ed6-a674-4f0c-a0c9-4a6a63e38ce9", + "serviceId": 28 + }, + { + "uid": "464eb4a0-62dc-42cd-af2b-4305db3c8d1b", + "serviceId": 26 + }, + { + "uid": "92d32358-b8b1-49f5-9f6f-bbc181483afd", + "serviceId": 26 + }, + { + "uid": "b4683403-8858-4bda-b043-1fc6ddd28b7e", + "serviceId": 25 + }, + { + "uid": "a56d623c-0023-4d10-916e-209fd4844b54", + "serviceId": 25 + }, + { + "uid": "408d8af4-2e8b-482b-adc1-fe609a14a98a", + "serviceId": 25 + }, + { + "uid": "ba71b39f-032d-4610-b93a-266916b5d429", + "serviceId": 25 + }, + { + "uid": "461a8fdc-c4c6-43d1-9046-fa9142e2d256", + "serviceId": 25 + }, + { + "uid": "aa8cd28b-34de-4361-aff3-f7954ee443f9", + "serviceId": 25 + }, + { + "uid": "bf82f1b8-0e94-4306-8c12-69878956ba59", + "serviceId": 25 + }, + { + "uid": "09c8a73a-64ef-4afb-86a4-3382f257a618", + "serviceId": 25 + }, + { + "uid": "ba6d6e55-0189-40a2-a989-ff3151a7e7bc", + "serviceId": 22 + }, + { + "uid": "7fd32ee2-3e2e-4198-b2fe-bcf63b5f17ac", + "serviceId": 22 + }, + { + "uid": "7ecf6b01-7493-4c83-af5d-9fb19385f904", + "serviceId": 21 + }, + { + "uid": "a2431648-77e3-49b2-82bd-925602f462bf", + "serviceId": 21 + }, + { + "uid": "7996ca02-906b-4538-a344-9fd67d554909", + "serviceId": 21 + }, + { + "uid": "6e2ae6d9-99a2-4a91-ace0-c3cff0c8ba9b", + "serviceId": 21 + }, + { + "uid": "6ed05a80-ff39-4acf-b24d-29369e724bee", + "serviceId": 21 + }, + { + "uid": "99342c70-faf6-4377-b183-4d9c99d702ca", + "serviceId": 21 + }, + { + "uid": "e3034741-5884-4ba4-b536-cc3444e4627d", + "serviceId": 21 + }, + { + "uid": "9b9d79a3-9037-4c1a-8bfd-29529ef5a345", + "serviceId": 21 + }, + { + "uid": "d77f6416-73b8-4e83-be4d-2a19a3e1e3bb", + "serviceId": 21 + }, + { + "uid": "eb2d0ebe-e0fc-4f70-8c73-8f204c8a05a0", + "serviceId": 21 + }, + { + "uid": "68af03fb-4fac-4bc8-b048-2054e9f29cca", + "serviceId": 21 + }, + { + "uid": "450e4996-e61c-4a9b-93f4-a7ecb77fabf8", + "serviceId": 21 + }, + { + "uid": "6dd644c2-030a-4b06-959f-3287ae970a31", + "serviceId": 21 + }, + { + "uid": "110d33f6-efb6-4788-82cb-0aaa25a22ea7", + "serviceId": 21 + }, + { + "uid": "e5375174-36ec-4512-bba9-b56f9eeba0bd", + "serviceId": 19 + }, + { + "uid": "ba0dbcf7-8c89-4ded-b180-482643846d85", + "serviceId": 13 + }, + { + "uid": "0f374d4b-b64d-4083-aef3-91e3e05c4c68", + "serviceId": 13 + }, + { + "uid": "34eb044d-e777-44b1-9187-e3c18e9d53db", + "serviceId": 13 + }, + { + "uid": "7f77570f-ce8b-484d-b464-9e19ec268ef6", + "serviceId": 13 + }, + { + "uid": "a8100363-9467-44b2-be74-b20a2248a187", + "serviceId": 13 + }, + { + "uid": "043565b5-990d-4684-8682-4741df22c582", + "serviceId": 13 + }, + { + "uid": "c76b101f-25aa-443c-979b-12571327766c", + "serviceId": 13 + }, + { + "uid": "f95a3390-49b1-4a43-ac53-af4be0ae5fc2", + "serviceId": 13 + }, + { + "uid": "1289f0ac-7a39-4d3e-884e-a7778b996977", + "serviceId": 13 + }, + { + "uid": "79d805d2-3ef7-4dfb-8fd2-622ba051d888", + "serviceId": 13 + }, + { + "uid": "78a050b5-2687-4fdb-ad4c-0f94517f6569", + "serviceId": 13 + }, + { + "uid": "148bfa14-03f3-4a8e-b9c7-0d83c923fe10", + "serviceId": 13 + }, + { + "uid": "dccf8f96-950f-41da-8fc2-70f1aa6467c6", + "serviceId": 13 + }, + { + "uid": "ec77d776-82e8-4e13-9bac-b5070daee472", + "serviceId": 13 + }, + { + "uid": "dcb0127c-620c-4f87-8fa7-6660ca3b1bc8", + "serviceId": 13 + }, + { + "uid": "4cd1f066-6411-4fd9-bf0e-3ebb8cab50a6", + "serviceId": 13 + }, + { + "uid": "b8f07f18-8933-4733-bd97-acaca80483a2", + "serviceId": 13 + }, + { + "uid": "b1fe53f4-228b-409b-a100-76c065516858", + "serviceId": 13 + }, + { + "uid": "fbfc8167-9b77-4863-bd21-ff53a623f5dc", + "serviceId": 13 + }, + { + "uid": "aceecd79-786b-405b-ab8d-57c248c2a3f2", + "serviceId": 13 + }, + { + "uid": "4e393388-1b0f-4bb3-a4bb-abee1694d926", + "serviceId": 13 + }, + { + "uid": "3fbfac81-f9d1-4f08-aa49-eec61518404a", + "serviceId": 13 + }, + { + "uid": "06eb5ec0-02f1-4f0a-a545-e489759a26d2", + "serviceId": 13 + }, + { + "uid": "c64bd0fe-3737-466d-ac03-d0eaa241cf81", + "serviceId": 13 + }, + { + "uid": "e6ebac9c-f3fd-4eaf-9fea-1f42755fa3a9", + "serviceId": 13 + }, + { + "uid": "f1b59ff6-ccb2-4dc4-8e92-2f96f4d5576a", + "serviceId": 13 + }, + { + "uid": "73169443-94ba-4ad5-922b-04b5c054bd03", + "serviceId": 13 + }, + { + "uid": "b5425937-dea6-4d16-af90-58bc681a3548", + "serviceId": 13 + }, + { + "uid": "1220cb96-9e7c-4c5f-b92a-948c8ede21ca", + "serviceId": 13 + }, + { + "uid": "01fe8a24-f1be-4b1d-9560-a0dfd54eeb0c", + "serviceId": 13 + }, + { + "uid": "ce808c1a-2890-4ecd-b310-42f63bf832d9", + "serviceId": 13 + }, + { + "uid": "3c2475c6-8a44-4053-8a4a-8a77d5b53a21", + "serviceId": 13 + }, + { + "uid": "b06fa560-9f86-46f7-917c-612717876703", + "serviceId": 13 + }, + { + "uid": "417e66f3-3c7c-4853-a96b-8df506a8f939", + "serviceId": 13 + }, + { + "uid": "97c7c361-8be8-4df8-986a-92d1b4ce1c2c", + "serviceId": 13 + }, + { + "uid": "137fb234-fdb6-4c66-82ef-6896cd6db843", + "serviceId": 13 + }, + { + "uid": "a24ef66b-83e4-4e72-a15b-9fb83a73c62f", + "serviceId": 13 + }, + { + "uid": "4d47284f-8be6-4338-b117-fbe03b777ff5", + "serviceId": 13 + }, + { + "uid": "f39aaff1-8ba0-42ba-a3ea-2015b5ba66f4", + "serviceId": 13 + }, + { + "uid": "5647aeb8-731e-4e40-9a81-241c1a6b6351", + "serviceId": 13 + }, + { + "uid": "12983095-2e03-4ee7-bf95-dddbe7f2df34", + "serviceId": 13 + }, + { + "uid": "4b4a7832-9d9a-4f70-a8a3-230346805e87", + "serviceId": 13 + }, + { + "uid": "7d17bd94-c27b-475d-8750-f6ade7b2e375", + "serviceId": 13 + }, + { + "uid": "ec1df65f-906e-4c0b-ad63-7670ea00ced0", + "serviceId": 13 + }, + { + "uid": "6b22a99a-2799-4254-a3c0-df7c27e8369b", + "serviceId": 13 + }, + { + "uid": "32408923-7ae9-46dc-8fd0-30941549ad35", + "serviceId": 13 + }, + { + "uid": "985176d4-b49f-412a-a98d-1feaef7e75ce", + "serviceId": 13 + }, + { + "uid": "0785e2cb-4f72-41e9-bf31-008fae28fe12", + "serviceId": 13 + }, + { + "uid": "50447cb4-64b0-4ada-acb3-654e4176932c", + "serviceId": 13 + }, + { + "uid": "5100521d-74ac-485d-b725-6dafc54ddbc6", + "serviceId": 13 + }, + { + "uid": "623af87b-4098-4017-b4e5-d97006c63cfa", + "serviceId": 13 + }, + { + "uid": "1975ee78-33fa-49a4-871f-2ad52d90fd44", + "serviceId": 13 + }, + { + "uid": "65362661-7c8e-4cd3-8ccf-c05e2cd07468", + "serviceId": 13 + }, + { + "uid": "d40807e0-918b-4ccc-b3b0-f45f104d086e", + "serviceId": 13 + }, + { + "uid": "b218455d-e349-4762-b433-245ff9e95630", + "serviceId": 13 + }, + { + "uid": "8d13f5f0-50fc-4440-a6b4-1a320ffe3f10", + "serviceId": 13 + }, + { + "uid": "599434e7-c43a-4234-977a-66db80fedc96", + "serviceId": 13 + }, + { + "uid": "b23d894d-edda-48f2-8347-a978fac2d1b3", + "serviceId": 13 + }, + { + "uid": "15751c22-bd8b-4d00-a705-ac0083dd51d3", + "serviceId": 13 + }, + { + "uid": "c32b513c-692c-42db-b7e9-ce86703235a2", + "serviceId": 13 + }, + { + "uid": "e6d5d062-7fe7-430e-8563-1d5cee7b13f4", + "serviceId": 13 + }, + { + "uid": "528fd58d-0301-4e07-b4e9-9fbae5a362f6", + "serviceId": 13 + }, + { + "uid": "75978a8a-96d7-404d-80a8-15d276a58847", + "serviceId": 13 + }, + { + "uid": "801662d3-d54c-4d65-85ea-1a78863b88ea", + "serviceId": 13 + }, + { + "uid": "864a5390-5c66-430a-af2a-079281692bbc", + "serviceId": 13 + }, + { + "uid": "e6a7a61e-bcf6-446b-89dd-ee662f0fb014", + "serviceId": 13 + }, + { + "uid": "80ee2387-807b-4934-ae82-8b85d6a028b3", + "serviceId": 13 + }, + { + "uid": "664ea816-320c-45d3-bb36-e4bd6028cca1", + "serviceId": 13 + }, + { + "uid": "6efc7c08-68fd-47b5-b33b-5d2f7e6d094a", + "serviceId": 12 + }, + { + "uid": "e62bda93-6931-40c5-8e71-7be416de289f", + "serviceId": 12 + }, + { + "uid": "6d6061cb-b0c1-44b9-8969-a70f08fe673c", + "serviceId": 12 + }, + { + "uid": "d964b164-15a0-4f61-a0b0-743759cf0123", + "serviceId": 12 + }, + { + "uid": "0fbef337-660c-4d36-835b-1226969050ce", + "serviceId": 12 + }, + { + "uid": "30124241-644c-4925-b525-a8c981a44023", + "serviceId": 1 + }, + { + "uid": "476a5f44-00a5-40ae-9f58-8fa5546ac297", + "serviceId": 1 + }, + { + "uid": "d4bd7c9c-40f8-4a56-92fd-1c8f271f8521", + "serviceId": 1 + }, + { + "uid": "de882fbc-b3dc-48f1-8bc7-b3da852334d2", + "serviceId": 1 + }, + { + "uid": "37fba19d-4c54-4275-8922-3170b5f8ad21", + "serviceId": 1 + }, + { + "uid": "604665ce-1d00-4540-ba8c-8a7519475714", + "serviceId": 1 + }, + { + "uid": "a5a90de9-0546-465b-b4ea-0b7376cd3ab4", + "serviceId": 1 + }, + { + "uid": "bed18a0b-aa07-4762-b583-0f32d65e0ea1", + "serviceId": 1 + }, + { + "uid": "c5a44ee3-75c1-40b5-9f5f-ce77fb57e7a4", + "serviceId": 1 + }, + { + "uid": "fff45eb2-7c46-4831-b54f-8fc4fa6e7634", + "serviceId": 1 + }, + { + "uid": "31faf848-3592-4b69-bbac-cb36a2f35a8e", + "serviceId": 1 + }, + { + "uid": "74304b53-2fff-4b72-a2a5-3619a0675e4a", + "serviceId": 1 + }, + { + "uid": "697f70a4-8c06-4c3f-88dd-daa0195c9506", + "serviceId": 1 + }, + { + "uid": "3b057081-d555-461b-b8c0-d88ac75fe098", + "serviceId": 1 + }, + { + "uid": "f1aca37b-a885-48f4-b602-572ddfca39e6", + "serviceId": 1 + }, + { + "uid": "48475ea2-cbfc-4250-b6ab-1afc0825cafd", + "serviceId": 1 + }, + { + "uid": "c768f8ad-41ae-44bb-a5a3-2c489bb298c7", + "serviceId": 1 + }, + { + "uid": "1f63df37-6dbb-47f4-bc49-18a5b383bcdc", + "serviceId": 1 + }, + { + "uid": "4647b83d-d768-43b4-bdd6-4a818cdb2cfe", + "serviceId": 1 + }, + { + "uid": "e69247f7-68f1-43de-adcb-b212548b2bb1", + "serviceId": 1 + }, + { + "uid": "f990c3b7-b3a9-4927-bfa5-fe495aa3fd36", + "serviceId": 1 + }, + { + "uid": "e0c54fa7-faca-4204-b832-b79075a7ced4", + "serviceId": 1 + }, + { + "uid": "95d31162-e801-405f-b36d-3bb236c4e3bd", + "serviceId": 1 + }, + { + "uid": "18f488a6-47dd-48d3-a358-e8957d9a9bfa", + "serviceId": 1 + }, + { + "uid": "eca82072-dfca-459d-a1cc-1c743eee1534", + "serviceId": 1 + }, + { + "uid": "d55e1118-35eb-4c6a-a4f3-8805bf15c5ea", + "serviceId": 1 + }, + { + "uid": "e7e73478-0da8-4cce-ae6b-08f59f664cc2", + "serviceId": 1 + }, + { + "uid": "a47155c6-ea21-402c-93cd-af5f80655666", + "serviceId": 1 + }, + { + "uid": "62b0d8f5-4b53-4927-826d-b1adc5264159", + "serviceId": 1 + }, + { + "uid": "b3b42a1d-5b06-45c6-8730-1e1840e1814f", + "serviceId": 1 + }, + { + "uid": "76efd6eb-6e98-4884-b69c-6cada86dc1a0", + "serviceId": 1 + }, + { + "uid": "992bb470-231c-4f75-9e8d-f3c178dabafd", + "serviceId": 1 + }, + { + "uid": "d4697977-843c-4e84-8c1f-2217c6979999", + "serviceId": 1 + }, + { + "uid": "10f8a05e-b0c7-4c32-bd19-2c0b6fb400bb", + "serviceId": 1 + }, + { + "uid": "943780ab-0f77-473a-92e2-08d3581d9320", + "serviceId": 1 + }, + { + "uid": "28144fe0-90b2-4107-82e2-7064aebe6e08", + "serviceId": 1 + }, + { + "uid": "f3ee56a5-ad91-442b-82d1-84b66f63fc6c", + "serviceId": 1 + }, + { + "uid": "a9c570d7-45d0-44ab-ade5-5ca6aaa4b5e7", + "serviceId": 1 + }, + { + "uid": "fe5263a9-c600-453f-8cfd-0f5214a54084", + "serviceId": 1 + }, + { + "uid": "f6ff074d-f3af-4b44-93fd-73fc617bc1bb", + "serviceId": 1 + }, + { + "uid": "716fb257-4235-493c-9e00-afe2fc62ddac", + "serviceId": 1 + }, + { + "uid": "c7be7901-ce86-4432-9b1f-699ddefb1f99", + "serviceId": 1 + }, + { + "uid": "d52cc072-e39d-49d8-9fed-6891d7cb5898", + "serviceId": 1 + }, + { + "uid": "a7e5d218-bdff-4e54-b480-31556f6e4a15", + "serviceId": 1 + }, + { + "uid": "9880a0d5-dd6e-4352-ab27-b7e2e307b3ad", + "serviceId": 1 + }, + { + "uid": "41d43664-ae4b-4e06-a535-e11e39b3b091", + "serviceId": 1 + }, + { + "uid": "c1931bf2-ea98-4ca3-ab6e-ea8846154c14", + "serviceId": 1 + }, + { + "uid": "d5021a14-3b97-4755-b808-dcfa7719c155", + "serviceId": 1 + }, + { + "uid": "05a7708c-ba37-4be2-987c-0b73347db6a6", + "serviceId": 1 + }, + { + "uid": "6c4060c4-c05f-4700-b258-0ee1b1c2c14a", + "serviceId": 1 + }, + { + "uid": "de588d9d-d097-4758-a1e9-c08e71250391", + "serviceId": 1 + }, + { + "uid": "ba79c918-603c-41c7-b75b-7b5fab98fc0d", + "serviceId": 1 + }, + { + "uid": "942b52c4-74cd-4cce-88d0-5d7d5846bb97", + "serviceId": 1 + }, + { + "uid": "eb25c267-4106-4cc2-afb9-79dec1774ab0", + "serviceId": 1 + }, + { + "uid": "37e7a813-a518-4ca4-9a08-6609188b3ffb", + "serviceId": 1 + }, + { + "uid": "573fcba1-112d-428f-9e13-c8e00e52e8a6", + "serviceId": 1 + }, + { + "uid": "f185d8b1-d937-4ade-8c4b-62fe86d2e3af", + "serviceId": 1 + }, + { + "uid": "966411ec-7b64-453e-9a54-72a6e4405902", + "serviceId": 1 + }, + { + "uid": "c32b5811-1ee5-40f6-af6c-282bc1d69e4c", + "serviceId": 1 + }, + { + "uid": "3a021b21-c922-4daf-82dd-d937ec0bc0e7", + "serviceId": 1 + }, + { + "uid": "c1f8f8a5-222f-4816-8adc-f0d94ffb0661", + "serviceId": 1 + }, + { + "uid": "21c9ecca-96eb-4250-925a-57b34b21564d", + "serviceId": 1 + }, + { + "uid": "6b1444f8-ad02-4be5-beea-ff619a2fa919", + "serviceId": 1 + }, + { + "uid": "38c3d4a1-0c3f-4847-9da0-0b61724c280e", + "serviceId": 1 + }, + { + "uid": "9999e249-afa6-477e-abe6-9e55c5a34036", + "serviceId": 1 + }, + { + "uid": "2f9a0b2c-7bd2-4c5b-a764-e6bbdb744404", + "serviceId": 1 + }, + { + "uid": "0906f325-9986-42e5-8fdf-73dd9f65b44f", + "serviceId": 1 + }, + { + "uid": "d69ca7e8-86af-40cb-8901-4a615e6087bc", + "serviceId": 1 + }, + { + "uid": "632c66b9-268b-4c1d-90d8-f8fb515c56ab", + "serviceId": 1 + }, + { + "uid": "04b5944f-9d34-4d3a-bfd7-2909d9ee36d5", + "serviceId": 1 + }, + { + "uid": "d38a479e-7e1d-4e71-8da4-1853766e64c8", + "serviceId": 1 + }, + { + "uid": "7ecccd3d-551a-43db-8453-74f2ba78f063", + "serviceId": 1 + }, + { + "uid": "e83f5946-a034-4f34-879a-f6625af45c88", + "serviceId": 1 + }, + { + "uid": "91b963bf-6d67-49d7-9a70-8bbd20a0cd93", + "serviceId": 1 + }, + { + "uid": "31994863-e06c-40fe-808a-9bd28dc4d4c2", + "serviceId": 1 + }, + { + "uid": "28a5b6ce-5dac-4845-81ad-93a8afb4e550", + "serviceId": 1 + }, + { + "uid": "6782ace6-0139-4df6-9949-d692631aee70", + "serviceId": 1 + }, + { + "uid": "fc6ab87e-6ceb-4f8e-9c7b-503c422502c6", + "serviceId": 1 + } +] \ No newline at end of file diff --git a/state_keys_progress.json b/state_keys_progress.json new file mode 100644 index 0000000..d750f4b --- /dev/null +++ b/state_keys_progress.json @@ -0,0 +1,58 @@ +{ + "index": 30, + "params": { + "150": [ + "accessIpListAPI", + "accessIpListIngress", + "appVersion", + "clusterName", + "controlPlaneCount", + "controlPlaneSizingDisk", + "controlPlaneSizingPolicy", + "needExternalAddressAPI", + "needExternalAddressIngress", + "nsxtUid", + "resourceRealm", + "workersCount", + "workersSizingDisk", + "workersSizingPolicy" + ], + "116": [ + "ipSpaceNameMaster", + "needExternalAddressMaster", + "resourceCPU", + "resourceDisk", + "resourceInstances", + "resourceMemory", + "resourceRealm" + ], + "115": [], + "113": [], + "111": [ + "recordInput", + "recordName", + "recordTTL", + "recordType", + "zoneName", + "zoneUid" + ] + }, + "out": { + "150": [ + "ingressAddress", + "kubernetesApiAddress", + "webUrl" + ], + "116": [ + "externalConnect", + "internalConnect", + "monitoring" + ], + "115": [], + "113": [], + "111": [ + "dnsServers", + "record" + ] + } +} \ No newline at end of file diff --git a/state_keys_progress.txt b/state_keys_progress.txt new file mode 100644 index 0000000..0dc3b8f --- /dev/null +++ b/state_keys_progress.txt @@ -0,0 +1 @@ +processed 25/313 diff --git a/state_vault_progress.json b/state_vault_progress.json new file mode 100644 index 0000000..5242cfe --- /dev/null +++ b/state_vault_progress.json @@ -0,0 +1,22 @@ +{ + "index": 28, + "found": { + "82": [ + "adminPass" + ], + "90": [ + "adminPass", + "adminUser", + "standbyPass", + "standbyUser" + ], + "93": [ + "adminPass", + "adminUser" + ], + "99": [ + "adminPass", + "adminUser" + ] + } +} \ No newline at end of file diff --git a/state_vault_services.json b/state_vault_services.json new file mode 100644 index 0000000..5f33ad8 --- /dev/null +++ b/state_vault_services.json @@ -0,0 +1,30 @@ +{ + "150": "b1c54787-8729-4264-811a-24b2936fc304", + "116": "bd1d689e-bce2-4792-9f1f-73cd1d6c7de7", + "115": "2eb2dc97-6658-4b36-b266-ef5698400158", + "113": "29f85c8e-430b-4b12-a72a-b5da70424966", + "111": "c0e5b324-fecb-4acf-9e21-2de0e7ba08a7", + "110": "f17cfa3e-20df-4e31-8d03-b5743f468e31", + "99": "e15e66e1-c613-4230-8f5e-263804224b0f", + "98": "870c2fa3-5fe9-43eb-985f-7c6d8979968e", + "97": "a70021b9-902d-40e9-bffa-d41ede78b841", + "96": "ef20352e-855c-4b41-a74e-e7f95a2f4f17", + "95": "46436960-1400-468c-83d2-35894cdff415", + "94": "b3a75608-d980-448d-9ea3-bb924357d994", + "93": "873b1a10-593c-4efc-bbdb-00b8daf3fda3", + "92": "3ec2d96d-a897-45ce-83ac-e7de3de01894", + "91": "e8f16cae-3668-4b8c-8119-6209d5a87fd7", + "90": "ad0a2410-fba7-4b0a-9e6a-53b158884b1a", + "89": "b31737f3-b792-4a43-83a9-fdd6452eb768", + "82": "55c4914e-7bc5-4bcc-bc71-2444025bc6fc", + "50": "4ca0482e-3a5a-4648-9a39-4a9995c970a9", + "28": "e3ff4b3a-1236-4df7-ad88-c66142733bdb", + "26": "464eb4a0-62dc-42cd-af2b-4305db3c8d1b", + "25": "b4683403-8858-4bda-b043-1fc6ddd28b7e", + "22": "ba6d6e55-0189-40a2-a989-ff3151a7e7bc", + "21": "7ecf6b01-7493-4c83-af5d-9fb19385f904", + "19": "e5375174-36ec-4512-bba9-b56f9eeba0bd", + "13": "ba0dbcf7-8c89-4ded-b180-482643846d85", + "12": "6efc7c08-68fd-47b5-b33b-5d2f7e6d094a", + "1": "30124241-644c-4925-b525-a8c981a44023" +} \ No newline at end of file diff --git a/svcs.json b/svcs.json new file mode 100644 index 0000000..5095ce2 --- /dev/null +++ b/svcs.json @@ -0,0 +1,411 @@ +{ + "1": { + "svc": "Болванка", + "ops": [ + "create", + "delete", + "modify", + "redeploy", + "resume", + "suspend" + ] + }, + "2": { + "svc": "Темплейт k8s", + "ops": [ + "create", + "delete", + "modify", + "resume", + "suspend" + ] + }, + "12": { + "svc": "S3 Object Storage", + "ops": [ + "create", + "create_sub_user", + "delete", + "delete_sub_user", + "modify", + "resume", + "suspend" + ] + }, + "13": { + "svc": "S3 бакет", + "ops": [ + "create", + "delete" + ] + }, + "19": { + "svc": "Организация в Cloud Director", + "ops": [ + "create", + "delete", + "modify", + "resume", + "suspend" + ] + }, + "20": { + "svc": "Организация [DEPRECATED]", + "ops": [ + "create", + "delete", + "resume", + "suspend" + ] + }, + "21": { + "svc": "Виртуальный датацентр (vDC)", + "ops": [ + "create", + "delete", + "modify", + "resume", + "suspend" + ] + }, + "22": { + "svc": "Сетевой шлюз периметра (Edge)", + "ops": [ + "create", + "delete", + "modify" + ] + }, + "23": { + "svc": "VM в Cloud Director (старый формат) (vc_vm)", + "ops": [ + "create", + "delete", + "modify", + "resume", + "suspend" + ] + }, + "24": { + "svc": "DEPRECATED Правила маршрутизации для VM (vc_nat)", + "ops": [] + }, + "25": { + "svc": "Публичные IP адреса", + "ops": [ + "create", + "delete", + "modify" + ] + }, + "26": { + "svc": "Виртуальный каталог ВМ (vApp)", + "ops": [ + "create", + "delete", + "resume", + "suspend" + ] + }, + "27": { + "svc": "VM в Cloud Director (vc_vmV2)", + "ops": [ + "create", + "delete", + "modify", + "resume", + "suspend" + ] + }, + "28": { + "svc": "Виртуальная машина", + "ops": [ + "create", + "delete", + "modify", + "redeploy", + "resume", + "suspend" + ] + }, + "29": { + "svc": "Группа датацентров", + "ops": [ + "add_vdc", + "create", + "delete", + "remove_vdc" + ] + }, + "32": { + "svc": "vc_vm_postgresql_std", + "ops": [ + "create", + "delete" + ] + }, + "50": { + "svc": "Nextcloud", + "ops": [ + "create", + "delete", + "modify", + "restart", + "resume", + "suspend" + ] + }, + "81": { + "svc": "Apache Superset", + "ops": [ + "create", + "delete" + ] + }, + "82": { + "svc": "Container Registry", + "ops": [ + "create", + "delete" + ] + }, + "88": { + "svc": "k8sZitiController", + "ops": [ + "create", + "delete" + ] + }, + "89": { + "svc": "Flask", + "ops": [ + "create", + "delete", + "modify", + "resume", + "suspend" + ] + }, + "90": { + "svc": "PostgreSQL", + "ops": [ + "create", + "delete", + "modify", + "recovery", + "restart", + "resume", + "suspend" + ] + }, + "91": { + "svc": "Redis", + "ops": [ + "create", + "delete" + ] + }, + "92": { + "svc": "MongoDB", + "ops": [ + "create", + "create_user", + "delete", + "delete_user", + "modify_user", + "resume", + "suspend" + ] + }, + "93": { + "svc": "RabbitMQ", + "ops": [ + "create", + "delete", + "modify", + "resume", + "suspend" + ] + }, + "94": { + "svc": "Lucee", + "ops": [ + "create", + "delete", + "modify", + "redeploy", + "restart", + "resume", + "suspend" + ] + }, + "95": { + "svc": "NodeJS", + "ops": [ + "create", + "delete", + "modify", + "redeploy", + "resume", + "suspend" + ] + }, + "96": { + "svc": "pgAdmin", + "ops": [ + "create", + "delete", + "modify", + "redeploy", + "resume", + "suspend" + ] + }, + "97": { + "svc": "NodeRed", + "ops": [ + "create", + "delete" + ] + }, + "98": { + "svc": "Простой HTTP контейнер", + "ops": [ + "create", + "delete", + "modify", + "redeploy", + "resume", + "suspend" + ] + }, + "99": { + "svc": "Gitea", + "ops": [ + "create", + "delete", + "modify", + "resume", + "suspend" + ] + }, + "100": { + "svc": "Serverless Openwhisk (openwhisk_tenant)", + "ops": [ + "create", + "delete" + ] + }, + "110": { + "svc": "DNS зона", + "ops": [ + "create", + "delete" + ] + }, + "111": { + "svc": "DNS запись", + "ops": [ + "create", + "delete", + "modify" + ] + }, + "112": { + "svc": "Тенант в Grafana", + "ops": [ + "create", + "delete", + "modify" + ] + }, + "113": { + "svc": "Быстрый старт", + "ops": [ + "create" + ] + }, + "114": { + "svc": "Комплексная услуга по созданию gitea", + "ops": [] + }, + "115": { + "svc": "Mariadb", + "ops": [ + "create", + "delete", + "modify", + "resume", + "suspend" + ] + }, + "116": { + "svc": "ApacheKafka", + "ops": [ + "create", + "create_topic", + "create_user", + "delete", + "delete_topic", + "delete_user", + "modify", + "modify_topic", + "modify_user", + "resume", + "suspend" + ] + }, + "117": { + "svc": "Nifi", + "ops": [ + "create", + "delete", + "modify" + ] + }, + "119": { + "svc": "Akhq", + "ops": [ + "create", + "delete", + "modify", + "resume", + "suspend" + ] + }, + "120": { + "svc": "ClickHouse", + "ops": [ + "create", + "create_database", + "create_user", + "delete", + "delete_database", + "delete_user", + "modify", + "resume", + "suspend" + ] + }, + "149": { + "svc": "VALO Cloud", + "ops": [ + "create", + "delete", + "modify", + "resume", + "suspend" + ] + }, + "150": { + "svc": "Kubernetes кластер Штурвал", + "ops": [ + "create", + "delete", + "modify", + "resume", + "suspend", + "update_secrets" + ] + } +} \ No newline at end of file