add arch docu
This commit is contained in:
parent
ce2e2635f5
commit
3bdc75cdca
4 changed files with 174 additions and 11 deletions
|
@ -1,11 +0,0 @@
|
|||
```mermaid
|
||||
classDiagram
|
||||
DevopsBuild <|-- DevopsDockerBuild
|
||||
DevopsBuild <|-- DevopsTerraformBuild
|
||||
|
||||
DevopsBuild <|-- C4kMixin
|
||||
|
||||
DevopsBuild *-- BuildService
|
||||
DevopsDockerBuild *-- DockerBuildService
|
||||
C4kMixin *-- C4kBuildService
|
||||
```
|
110
doc/architecture/Build.md
Normal file
110
doc/architecture/Build.md
Normal file
|
@ -0,0 +1,110 @@
|
|||
# Build Frontend
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
class DevopsBuild {
|
||||
name()
|
||||
build_path()
|
||||
initialize_build_dir()
|
||||
}
|
||||
|
||||
class DevopsTerraformBuild {
|
||||
terraform_build_commons_path()
|
||||
project_vars()
|
||||
copy_build_resource_file_from_package(name)
|
||||
copy_build_resources_from_package()
|
||||
copy_build_resources_from_dir()
|
||||
copy_local_state()
|
||||
rescue_local_state()
|
||||
initialize_build_dir()
|
||||
post_build()
|
||||
init_client()
|
||||
write_output(terraform)
|
||||
read_output_json()
|
||||
plan()
|
||||
plan_fail_on_diff()
|
||||
apply(auto_approve=False)
|
||||
refresh()
|
||||
destroy(auto_approve=False)
|
||||
tf_import(tf_import_name, tf_import_resource,)
|
||||
print_terraform_command(terraform)
|
||||
}
|
||||
|
||||
class HetznerMixin {
|
||||
// HetznerMixin -> HetznerTerraformBuild
|
||||
project_vars()
|
||||
copy_build_resources_from_package()
|
||||
}
|
||||
|
||||
class ExoscaleMixin {
|
||||
// ExoscaleMixin -> ExoscaleTerraformBuild
|
||||
project_vars()
|
||||
copy_build_resources_from_package()
|
||||
}
|
||||
|
||||
class AwsBackendPropertiesMixin {
|
||||
def project_vars()
|
||||
copy_build_resources_from_package()
|
||||
init_client()
|
||||
}
|
||||
|
||||
class DigitaloceanBackendPropertiesMixin {
|
||||
project_vars(self)
|
||||
copy_build_resources_from_package(self)
|
||||
init_client(self)
|
||||
}
|
||||
|
||||
class DevopsDockerBuild {
|
||||
def initialize_build_dir()
|
||||
image()
|
||||
drun()
|
||||
dockerhub_login()
|
||||
dockerhub_publish()
|
||||
test()
|
||||
}
|
||||
|
||||
class ProvsK3sMixin {
|
||||
// ProvsK3sMixin -> ProvsK3sBuild
|
||||
def update_runtime_config(fqdn, ipv4, ipv6=None)
|
||||
write_provs_config()
|
||||
provs_apply(dry_run=False)
|
||||
}
|
||||
|
||||
class C4kMixin {
|
||||
// C4kMixin -> C4kBuild
|
||||
def write_c4k_config()
|
||||
def write_c4k_auth()
|
||||
c4k_apply(dry_run=False)
|
||||
}
|
||||
|
||||
DevopsBuild <|-- DevopsDockerBuild
|
||||
DevopsBuild <|-- DevopsTerraformBuild
|
||||
DevopsBuild <|-- AwsRdsPgMixin
|
||||
|
||||
DevopsTerraformBuild <|-- AwsBackendPropertiesMixin
|
||||
DevopsTerraformBuild <|-- DigitaloceanTerraformBuild
|
||||
DevopsTerraformBuild <|--ExoscaleMixin
|
||||
DevopsTerraformBuild <|--HetznerMixin
|
||||
DevopsBuild <|-- ProvsK3sMixin
|
||||
DigitaloceanTerraformBuild <|-- DigitaloceanBackendPropertiesMixin
|
||||
AwsBackendPropertiesMixin <|-- AwsMfaMixin
|
||||
|
||||
DevopsBuild <|-- C4kMixin
|
||||
|
||||
```
|
||||
|
||||
# Build Frontend with application and domain
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
DevopsBuild <|-- DevopsDockerBuild
|
||||
DevopsBuild <|-- DevopsTerraformBuild
|
||||
|
||||
DevopsBuild <|-- C4kMixin
|
||||
|
||||
DevopsBuild *-- BuildService
|
||||
DevopsDockerBuild *-- DockerBuildService
|
||||
C4kMixin *-- C4kBuildService
|
||||
```
|
||||
|
||||
# Domain
|
54
doc/architecture/BuildCreationAndCall.md
Normal file
54
doc/architecture/BuildCreationAndCall.md
Normal file
|
@ -0,0 +1,54 @@
|
|||
# Build Frontend with application and domain
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
class DevopsBuild {
|
||||
__init__(project, config)
|
||||
do_sth(project)
|
||||
}
|
||||
|
||||
class ProjectRepository {
|
||||
get_build(project): Build
|
||||
set_build(project, build)
|
||||
}
|
||||
|
||||
class Build
|
||||
|
||||
class BuildService {
|
||||
do_sth(project, build)
|
||||
}
|
||||
|
||||
DevopsBuild *-- BuildService
|
||||
BuildService *-- ProjectRepository
|
||||
DevopsBuild *-- ProjectRepository
|
||||
|
||||
```
|
||||
|
||||
In case of simple operations we will not need the BuildService in between.
|
||||
|
||||
|
||||
## Init Sequence
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
MyBuild ->> DevOpsBuild: create_config
|
||||
MyBuild ->> DevOpsBuild: __init__(project, config)
|
||||
activate DevOpsBuild
|
||||
DevOpsBuild ->> Build: __init__
|
||||
DevOpsBuild ->> ProjectRepository: set_build(build)
|
||||
deactivate DevOpsBuild
|
||||
```
|
||||
|
||||
## do_sth Sequence
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
MyBuild ->> DevOpsBuild: do_sth(project)
|
||||
activate DevOpsBuild
|
||||
DevOpsBuild ->> BuildService: do_sth(project)
|
||||
activate BuildService
|
||||
BuildService ->> ProjectRepository: get_build
|
||||
BuildService ->> BuildService: do_some_complicated_stuff(build)
|
||||
deactivate BuildService
|
||||
deactivate DevOpsBuild
|
||||
```
|
10
doc/architecture/Domain.md
Normal file
10
doc/architecture/Domain.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
# Domain
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
class Build {
|
||||
__init__(project, config)
|
||||
do_sth(project)
|
||||
}
|
||||
|
||||
```
|
Loading…
Reference in a new issue