Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yevgen-grytsay/flux-multibranch-multienv-example
Приклад, як за допомогою Flux синхронізувати дві гілки з двома неймспейсами в Kubernetes
https://github.com/yevgen-grytsay/flux-multibranch-multienv-example
fluxcd kubernetes multienvironment
Last synced: about 1 month ago
JSON representation
Приклад, як за допомогою Flux синхронізувати дві гілки з двома неймспейсами в Kubernetes
- Host: GitHub
- URL: https://github.com/yevgen-grytsay/flux-multibranch-multienv-example
- Owner: yevgen-grytsay
- Created: 2024-07-06T15:43:17.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-07-12T13:09:09.000Z (6 months ago)
- Last Synced: 2024-07-12T15:02:09.456Z (6 months ago)
- Topics: fluxcd, kubernetes, multienvironment
- Homepage:
- Size: 93.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# flux-multibranch-multienv-example
Цей репозиторій є демонстрацією того, як можна за допомогою Flux синхронізувати кілька гілок
одного репозиторію з кількома неймспейсами в Kubernetes.Демонстраційний додаток, описаний за допомогою маніфестів Kubernetes, знаходиться в репозиторії [yevgen-grytsay/flux-multibranch-multienv-app](https://github.com/yevgen-grytsay/flux-multibranch-multienv-app). Цей репозиторій має дві гілки: `main` і `dev`. Маніфести з гілки `main` встановлюються у неймспейс `prod`, а маніфести з гілки `dev` -- у неймспейс `dev`.
## Setup
```sh
flux check --pre
flux installread -s GITHUB_TOKEN
export GITHUB_TOKEN# PAT with permissions "Contents: Read and Write"
flux bootstrap github \
--components source-controller,kustomize-controller \
--owner=yevgen-grytsay \
--repository=flux-multibranch-multienv-example \
--personal \
--path=cluster \
--token-auth
```Так виглядають ресурси `GitRepository` в Kubernetes:
```
# kubectl get gitrepo -A
NAMESPACE NAME URL AGE READY STATUS
dev hello-world-dev https://github.com/yevgen-grytsay/flux-multi-branch-multi-env-app 70s True stored artifact for revision 'dev@sha1:b5ae33b162eb5041dfba3aaad39779a99e70bddf'
flux-system flux-system https://github.com/yevgen-grytsay/flux-multibranch-multienv-example.git 36m True stored artifact for revision 'main@sha1:2fb28a043a224f2cdee764523d89fd291215658e'
prod hello-world-prod https://github.com/yevgen-grytsay/flux-multi-branch-multi-env-app 10s True stored artifact for revision 'main@sha1:b5ae33b162eb5041dfba3aaad39779a99e70bddf'
```## Приватний репозиторій
Параметри доступу до репозиторію з додатком, якщо він приватний, можна зберігати в сікреті. Сікрет має бути в одному неймспейсі з ресурсом `GitRepository`. Детальніше про це в [документації](https://fluxcd.io/flux/components/source/gitrepositories/#secret-reference).
```sh
apiVersion: source.toolkit.fluxcd.io/v1
kind: GitRepository
metadata:
name: hello-world-dev
spec:
url: https://github.com/yevgen-grytsay/flux-multi-branch-multi-env-app
secretRef:
name: hello-world
```## Example #2
У гілці `example-2` цього репозиторію міститься ще один приклад, який крім різних гілок
використовує ще й різні шляхи до кастомізацій в кожній гілці.```sh
flux bootstrap github \
--components source-controller,kustomize-controller \
--owner=yevgen-grytsay \
--repository=flux-multibranch-multienv-example \
--branch=example-2 \
--personal \
--path=cluster \
--token-auth
```