openpaas

command module
v0.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 9, 2024 License: MPL-2.0 Imports: 10 Imported by: 0

README

OpenPaas Core

Ties together Terraform, Ansible and Runtime execution of commands (local) to create a generic base for automation with these tools.

Requirements

  • make for build commands.brew install make
  • golangci-lint for linting. brew install golangci-lint
  • pkgsite for local documentation. go install golang.org/x/pkgsite/cmd/pkgsite@latest
  • Terraform for Infrastructure as Code (IaC). Recommended to use tfenv for installation.
  • Ansible for automation of server configuration. brew install ansible
Configuration
  • Your Hetzner token must be available as the environment variable HETZNER_TOKEN
  • You must provide your config in config.yaml
    • in cloud_provider_config> allowed_ips you must have the IP of the machine doing the deployment, otherwise the firewall will block the connection
    • One of:
      • cloud_provider_config> provider_settings > github_ids one or more valid github id. The public keys associated to the id will be uplaoded to the servers.

TODO

  • add documentation to parts of the code (I need to work more with it)
  • enable remote backend for TF for coordination, based on some flag
  • using systemctl, setup nginx, upload/download binary, upload service, restart service
  • hetzner minimum viable config (2 boxes, 1 load balancer, 1 postgres, private network)
  • set up postgres and backups? single ndoe with continues backup + daily snapshot?
  • postgres to master/slave
  • o11y at infra level (grafana, tempo, loki, successor-to-prometheus) as a playbook

Documentation

Overview

OpenPaaS provisions infrastructure based on the provided config, while leveraging existing IaC tooling.

The intention is to simplify the configuration for a majority of application, which can be server with efficient, traditional infrastructure. This covers a majority of companies.

Using tools like Terraform and Ansible underneath means that you can inspect the output and understand what is going to happen, without having to learn a new IaC tool.

Currently, it defaults to Hetzner, but it can easily be expanded to target other platforms.

NOTE: the executable sets the Environment variable ANSIBLE_HOST_KEY_CHECKING to False during execution. This disables host key checking on SSH connections.

Usage:

openpaas [flags]
openpaas [command]

Available Commands:

bootstrap   Bootstrap your platform
completion  Generate the autocompletion script for the specified shell
help        Help about any command
sync        Sync your platform

Flags:

-h, --help   help for openpaas

Use "openpaas [command] --help" for more information about a command.

Environment Variables:

HETZNER_TOKEN
	The Hetzner access token to use to apply the Terraform configuration

Directories

Path Synopsis
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL