You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
helm/docs/workflow/helm-dm-diagrams.src.md

85 lines
2.2 KiB

# Helm-DM Workflow Diagrams
# Helm Official
@startuml helm-official-workflow.png
autonumber
actor Member
actor Core
participant GitHub
participant CI
database Repository
Member->GitHub: PR New Chart
GitHub->CI: Run automated tests
CI->GitHub: Tests pass
GitHub-->Member: Tests pass
GitHub-->Core: Tests pass
Core<->Member: Discussion about chart
Core->GitHub: Code review
Core->GitHub: Release approval
GitHub->CI: Issue release
CI->Repository: Push release
Member->Repository: Get release
@enduml
# Public Chart Repository
An example workflow using Launchpad and BZR.
@startuml public-chart-repo.png
autonumber
actor Developer
actor Maintainer
participant Launchpad
Developer->Launchpad: Push branch with chart
Maintainer->Launchpad: Fetch branch
Maintainer->Maintainer: Locally test
Maintainer->Launchpad: Merge branch
... later ...
Maintainer->Launchpad: Create global release
Maintainer->Maintainer: Regenerate all versioned charts
Maintainer->Repository: Push charts
@enduml
# Private chart repository
An example workflow using an internal Gerrit Git repo and Jenkins.
@startuml private-chart-repo.png
autonumber
actor "Developer A" as A
actor "Developer B" as B
actor "Internal user" as Internal
participant Gerrit
participant Jenkins
participant "Docker registry" as Docker
participant "Chart repository" as Chart
A->Gerrit: Clone repo
A->A: Local development
A->Gerrit: Push branch
Gerrit->Jenkins: Test branch
Jenkins->Jenkins: Build and test
Jenkins->Docker: Snapshot image push
Jenkins->Chart: Snapshot chart
Jenkins->Jenkins: Integration tests
Jenkins-->A: Build OK
B->Gerrit: Code review
B->A: Code approval
A->Gerrit: Tag the new chart
Gerrit->Jenkins: Release
Jenkins->Jenkins: Build and test
Jenkins->Docker: Production image push
Jenkins->Chart: Production chart
Internal->Chart: Get production chart
@enduml
# Private Charts without repository
An example using SVN for local dev, and no chart repository.
@startuml private-chart-no-repo.png
autonumber
actor "Developer A" as A
actor "Developer B" as B
participant SVN
participant Kubernetes
A->SVN: Checkout code
A->A: Develop locally
A->SVN: Check in code
B<->SVN: Update local
B->Kubernetes: Run helm deploy on local chart
@enduml