fly.io-rails 0.0.18 → 0.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 76e2a638b08c3d778fbdac62956b4730c9436bd133c3cbaedc758f9fd79f7c08
|
4
|
+
data.tar.gz: d1b6bf847c64e993f4b23d1e35fdfc47c94e91d40d3a50aab723c912efda9475
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 564d0bc23fa62c2d382ef078395e94bb4c2fb3771913265478d3e3492dfbca9f25cb0fce5b38dd5dcb9d973691fcea2cfc7341fcfc25e036e9abec930e54618f
|
7
|
+
data.tar.gz: 5ddd57513b37cdaaa80ce946b67c4af3614541b71c4b3f9b71554b390fb52d7c8de412a69151d7a514d67bb89a33cf86e613c44f946d10cf2249d83e661ffdcf
|
@@ -28,11 +28,8 @@ module Fly
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
|
-
# determine
|
32
|
-
def self.
|
33
|
-
hostname = fly_api_hostname
|
34
|
-
return hostname if hostname
|
35
|
-
|
31
|
+
# determine application's organization
|
32
|
+
def self.org
|
36
33
|
org = 'personal'
|
37
34
|
|
38
35
|
if File.exist? 'fly.toml'
|
@@ -46,6 +43,14 @@ module Fly
|
|
46
43
|
end
|
47
44
|
end
|
48
45
|
|
46
|
+
org
|
47
|
+
end
|
48
|
+
|
49
|
+
# determine fly api hostname. Starts proxy if necessary
|
50
|
+
def self.fly_api_hostname!
|
51
|
+
hostname = fly_api_hostname
|
52
|
+
return hostname if hostname
|
53
|
+
|
49
54
|
pid = fork { exec "flyctl machines api-proxy --org #{org}" }
|
50
55
|
at_exit { Process.kill "INT", pid }
|
51
56
|
|
@@ -62,7 +67,7 @@ module Fly
|
|
62
67
|
end
|
63
68
|
end
|
64
69
|
|
65
|
-
@@
|
70
|
+
@@fly_api_hostname
|
66
71
|
end
|
67
72
|
|
68
73
|
# create_fly_application app_name: 'user-functions', org_slug: 'personal'
|
data/lib/fly.io-rails/version.rb
CHANGED
@@ -17,7 +17,21 @@ namespace :fly do
|
|
17
17
|
# - full access to secrets, databases
|
18
18
|
# - failures here result in VM being stated, shutdown, and rolled back
|
19
19
|
# to last successful deploy (if any).
|
20
|
-
task :server do
|
20
|
+
task :server => :swapfile do
|
21
21
|
sh 'bin/rails server'
|
22
22
|
end
|
23
|
+
|
24
|
+
# optional SWAPFILE task:
|
25
|
+
# - adjust fallocate size as needed
|
26
|
+
# - performance critical applications should scale memory to the
|
27
|
+
# point where swap is rarely used. 'fly scale help' for details.
|
28
|
+
# - disable by removing dependency on the :server task, thus:
|
29
|
+
# task :server do
|
30
|
+
task :swapfile do
|
31
|
+
sh 'fallocate -l 512M /swapfile'
|
32
|
+
sh 'chmod 0600 /swapfile'
|
33
|
+
sh 'mkswap /swapfile'
|
34
|
+
sh 'echo 10 > /proc/sys/vm/swappiness'
|
35
|
+
sh 'swapon /swapfile'
|
36
|
+
end
|
23
37
|
end
|
@@ -2,11 +2,19 @@ terraform {
|
|
2
2
|
required_providers {
|
3
3
|
fly = {
|
4
4
|
source = "fly-apps/fly"
|
5
|
-
version = "0.0.
|
5
|
+
version = "0.0.18"
|
6
6
|
}
|
7
7
|
}
|
8
8
|
}
|
9
9
|
|
10
|
+
/* uncomment if you want an internal tunnel
|
11
|
+
provider "fly" {
|
12
|
+
useinternaltunnel = true
|
13
|
+
internaltunnelorg = <%= (@org || "personal").inspect %>
|
14
|
+
internaltunnelregion = <%= (@regions.first || 'iad').inspect %>
|
15
|
+
}
|
16
|
+
*/
|
17
|
+
|
10
18
|
# Allocate an IPv4 address
|
11
19
|
resource "fly_ip" "<%= @appName %>Ipv4" {
|
12
20
|
app = <%= @app.inspect %>
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'open3'
|
2
|
+
require 'fly.io-rails/machines'
|
2
3
|
|
3
4
|
class TerraformGenerator < Rails::Generators::Base
|
4
5
|
include FlyIoRails::Utils
|
@@ -35,6 +36,7 @@ class TerraformGenerator < Rails::Generators::Base
|
|
35
36
|
@yarn = File.exist? 'yarn.lock'
|
36
37
|
@node_version = @node ? `node --version`.chomp.sub(/^v/, '') : '16.17.0'
|
37
38
|
@appName = @app.gsub('-', '_').camelcase(:lower)
|
39
|
+
@org = Fly::Machines.org
|
38
40
|
|
39
41
|
template 'Dockerfile.erb', 'Dockerfile'
|
40
42
|
template 'dockerignore.erb', '.dockerignore'
|
data/lib/tasks/fly.rake
CHANGED
@@ -46,6 +46,9 @@ namespace :fly do
|
|
46
46
|
config[:env] ||= {}
|
47
47
|
config[:env]['SERVER_COMMAND'] = 'bin/rails fly:release'
|
48
48
|
|
49
|
+
# start proxy, if necessary
|
50
|
+
endpoint = Fly::Machines::fly_api_hostname!
|
51
|
+
|
49
52
|
# start release machine
|
50
53
|
STDERR.puts "--> #{config[:env]['SERVER_COMMAND']}"
|
51
54
|
start = Fly::Machines.create_start_machine(app, config: config)
|
@@ -75,6 +78,7 @@ namespace :fly do
|
|
75
78
|
|
76
79
|
# use terraform apply to deploy
|
77
80
|
ENV['FLY_API_TOKEN'] = `flyctl auth token`.chomp
|
81
|
+
ENV['FLY_HTTP_ENDPOINT'] = endpoint if endpoint
|
78
82
|
system 'terraform apply -auto-approve'
|
79
83
|
else
|
80
84
|
STDERR.puts 'Error performing release'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fly.io-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Ruby
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-09-
|
11
|
+
date: 2022-09-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fly-ruby
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: toml
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
description:
|
28
42
|
email: rubys@intertwingly.net
|
29
43
|
executables:
|