|
| 1 | +--- |
| 2 | +title: Вступ |
| 3 | +description: Представляємо SDK Helm Go |
| 4 | +sidebar_position: 1 |
| 5 | +--- |
| 6 | + |
| 7 | +Helm's Go SDK дозволяє користувацькому програмному забезпеченню використовувати чарти Helm та функціонал Helm для управління розгортанням програмного забезпечення Kubernetes (насправді, Helm CLI є саме таким інструментом!). |
| 8 | + |
| 9 | +Наразі SDK функціонально відокремлений від Helm CLI. SDK може використовуватися (і використовується) окремими інструментами. Проєкт Helm прагне забезпечити стабільність API для SDK. Застереження: SDK має деякі недоліки, що залишилися від початкової роботи з відокремлення CLI та SDK. Проєкт Helm прагне виправити це з часом. |
| 10 | + |
| 11 | +Повну документацію API можна знайти за адресою [https://pkg.go.dev/helm.sh/helm/v4](https://pkg.go.dev/helm.sh/helm/v4). |
| 12 | + |
| 13 | +Нижче наведено короткий огляд деяких основних типів пакетів та простий приклад. Більше прикладів та більш повнофункціональний 'driver'. можна знайти в розділі [Прикладах](/sdk/examples.mdx). |
| 14 | + |
| 15 | +## Огляд пакунка main {#main-package-overview} |
| 16 | + |
| 17 | +- [pkg/action](https://pkg.go.dev/helm.sh/helm/v4/pkg/action): Містить основного «клієнта» для виконання дій Helm. Це той самий пакунок, який використовує CLI під капотом. Якщо вам потрібно лише виконувати основні команди Helm з іншої програми Go, цей пакунок саме для вас |
| 18 | +- [pkg/chart](https://pkg.go.dev/helm.sh/helm/v4/pkg/chart), [pkg/chartutil](https://pkg.go.dev/helm.sh/helm/v4/pkg/chart/v2/util): методи та допоміжні засоби, що використовуються для завантаження та обробки чартів |
| 19 | +- [pkg/cli](https://pkg.go.dev/helm.sh/helm/v4/pkg/cli) та його підпакети: містять усі обробники для стандартних змінних середовища Helm, а його підпакети містять обробку файлів виводу та значень |
| 20 | +- [pkg/release](https://pkg.go.dev/helm.sh/helm/v4/pkg/release): Визначає об'єкт `Release` та статуси |
| 21 | + |
| 22 | +Крім цих пакетів, існує ще багато інших, тож перегляньте документацію, щоб отримати додаткову інформацію! |
| 23 | + |
| 24 | +### Simple example {#simple-example} |
| 25 | + |
| 26 | +Це простий приклад виконання команди `helm list` за допомогою Go SDK. Більш повні приклади дивіться в розділі [Приклади](/sdk/examples.mdx). |
| 27 | + |
| 28 | +```go |
| 29 | +package main |
| 30 | + |
| 31 | +import ( |
| 32 | + "log" |
| 33 | + "os" |
| 34 | + |
| 35 | + "helm.sh/helm/v4/pkg/action" |
| 36 | + "helm.sh/helm/v4/pkg/cli" |
| 37 | +) |
| 38 | + |
| 39 | +func main() { |
| 40 | + settings := cli.New() |
| 41 | + |
| 42 | + actionConfig := new(action.Configuration) |
| 43 | + // Ви можете передати порожній рядок замість settings.Namespace(), щоб перелічити |
| 44 | + // всі простори імен |
| 45 | + if err := actionConfig.Init(settings.RESTClientGetter(), settings.Namespace(), os.Getenv("HELM_DRIVER"), log.Printf); err != nil { |
| 46 | + log.Printf("%+v", err) |
| 47 | + os.Exit(1) |
| 48 | + } |
| 49 | + |
| 50 | + client := action.NewList(actionConfig) |
| 51 | + // Тільки список розгорнутих |
| 52 | + client.Deployed = true |
| 53 | + results, err := client.Run() |
| 54 | + if err != nil { |
| 55 | + log.Printf("%+v", err) |
| 56 | + os.Exit(1) |
| 57 | + } |
| 58 | + |
| 59 | + for _, rel := range results { |
| 60 | + log.Printf("%+v", rel) |
| 61 | + } |
| 62 | +} |
| 63 | + |
| 64 | +``` |
| 65 | + |
| 66 | +## Сумісність {#compatibility} |
| 67 | + |
| 68 | +Helm SDK чітко дотримується гарантій зворотної сумісності Helm: |
| 69 | + |
| 70 | +https://github.com/helm/community/blob/main/hips/hip-0004.md |
| 71 | + |
| 72 | +Тобто, кардинальні зміни будуть вноситися тільки при випуску нової основної версії або для усунення проблеми безпеки. |
0 commit comments