Skip to content
This repository has been archived by the owner on Feb 26, 2024. It is now read-only.

StackHead v2 #145

Open
saitho opened this issue Apr 21, 2021 · 0 comments
Open

StackHead v2 #145

saitho opened this issue Apr 21, 2021 · 0 comments
Milestone

Comments

@saitho
Copy link
Member

saitho commented Apr 21, 2021

This issue is used to collect all requirements for StackHead v2.
Based on the discussion on the Miro board: https://miro.com/app/board/o9J_lI-wpQM=/

Move StackHead CLI back to main repository

StackHead CLI will be the only way to execute StackHead, it will therefore be the main component and is moved to this main repository.

Replace Ansible by custom Golang implementation

Ansible is dropped as we only use it for SSH connecting to the target server, install software there and process the project definition file. The CLI will take over all responsibilities of our Ansible usage.

It needs to do:

  • Establish SSH connection
  • Copy files to the target server via SSH
  • Execute commands on the target server via SSH
    • always: e.g. apt, mkdir
    • setup only: sudo, create users and groups
  • Setup all required software (as Ansible did before) (with sudo access)
  • Deploy the project (certificates, Terraform files, apply Terraform) with non-root stackhead user
  • Parse configuration files (project definition)
  • Generate Terraform files (and maybe others) from a template
  • Allow extending its functionality with Go plugins (see below)

Plugin system see #152

New block-based configuration schema

While YAML files are easy to process, a different, block-based config schema may be easier to maintain.
Furthermore the idea of configuration blocks is easier to grasp, as the documentation would describe the structure of each block and where they can be used.
Lower prio as this requires implementing a new parser. See #131

Additional features

Features planned for v1 may see implementation in v2:

@saitho saitho added this to the v2.0.0 milestone Apr 21, 2021
@getstackhead getstackhead locked and limited conversation to collaborators Apr 21, 2021
@saitho saitho pinned this issue Apr 21, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant