Skip to content

Instantly share code, notes, and snippets.

@corinnekrych
Last active February 12, 2019 10:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save corinnekrych/4ed8eb8aeb52af120bf99ade6b1449e3 to your computer and use it in GitHub Desktop.
Save corinnekrych/4ed8eb8aeb52af120bf99ade6b1449e3 to your computer and use it in GitHub Desktop.
@startuml
title "odo create component flow (ex: nodejs)"
actor User
boundary "<odo/cli/component>\ncreate" as odo
entity "<pkg/application/component>\ncomponent" as comp
entity "<pkg/occlient>\nocclient" as occlient
entity "<os/client-go>\nAPI" as osclient
entity "<k8s/client-go>\nAPI" as k8sclient
User -> odo : odo create nodejs --git httpp://.../repo-app
odo -> comp : CreateFromGit
comp -> comp : GetLabels
note left
app.kubernetes.io/name=odo-xxxx
app.kubernetes.io/component-name
=repo-app-nodejs-yyyy
app.kubernetes.io/component-type=nodejs
app.kubernetes.io/component-version=latest
app=odo-xxxx
end note
comp -> comp : addAnotation
note left
app.kubernetes.io/url=httpp://.../repo-app
app.kubernetes.io/component-source-type=git
end note
comp -> occlient : ParseImageName
comp <-- occlient : nodejs, latest
comp -> occlient : NewAppS2I
activate occlient
occlient -> osclient : GetImageStreamImage
occlient <-- osclient : dockerImageReference
note left
docker.io/bucharestgold/centos7-s2i-nodejs@sha256:3cc...
end note
occlient -> osclient : ImageStreamImages.Create
occlient --> occlient : generateBuildConfig
occlient -> osclient: BuildConfig.Create
occlient -> occlient : getInputEnvVarsFromStrings
note left
odo create nodejs --env key=value,key1=value1
end note
occlient -> occlient : generateGitDeploymentConfig
occlient -> osclient : DeploymentConfig.Create
occlient -> k8sclient : Service.Create
occlient -> k8sclient : Secret.Create
note left
for eachport create secret
end note
deactivate occlient
odo -> comp : Build
comp -> occlient : StartBuild
occlient -> osclient: BuildConfig.Instanciate
osclient --> occlient: Build
occlient --> comp: Build.Name
@enduml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment