Sha256: dcbea0d77431d5f3b4c468f3c0281a67d6f7e4d42799b5142c9a75bf7554162e
Contents?: true
Size: 1.46 KB
Versions: 1
Compression:
Stored size: 1.46 KB
Contents
# frozen_string_literal: true class Kraaken::Cloud Server = Struct.new(:name, :ip, :public_ip, :status) do def jump? name == "jump" end end def initialize(config:) @config = config end def provision(name) raise NotImplementedError end def prepare(name) new_relic = config.credentials.credential("new-relic") config.ssh.connect(name) do |ssh| ssh.run <<~BASH sudo apt update sudo apt upgrade -y sudo apt install -y docker.io docker-compose sudo docker network create cloudflaretunnel sudo gpasswd -a $USER docker curl -Ls https://download.newrelic.com/install/newrelic-cli/scripts/install.sh | bash && sudo NEW_RELIC_API_KEY=#{new_relic.password} NEW_RELIC_ACCOUNT_ID=#{new_relic.username} NEW_RELIC_REGION=EU /usr/local/bin/newrelic install -y BASH end logger.increment_progress by: 25 config.ssh.connect(name) do |ssh| ssh.run "mkdir -p ~/traefik" ssh.write_file "~/traefik/docker-compose.yml", config.load_template("traefik-compose.yml", tunnel_token: config.ingress.tunnel_token_for_name(name)) logger.increment_progress by: 20 ssh.run "cd ~/traefik && docker-compose up -d" ssh.run "echo #{config.credentials.password("docker-registry")} | docker login ghcr.io -u USERNAME --password-stdin", log: false end end def servers raise NotImplementedError end protected attr_reader :config delegate :logger, to: :config end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
kraaken-0.0.1 | lib/kraaken/cloud.rb |