Module: Platform
- Defined in:
- lib/cem_acpt/platform/gcp.rb
Overview
GCP platform implementation
Instance Method Summary collapse
- #gcp_credentials_file ⇒ Object
- #gcp_disk_size ⇒ Object
- #gcp_machine_type ⇒ Object
- #gcp_private_key ⇒ Object
- #gcp_project ⇒ Object
- #gcp_public_key ⇒ Object
- #gcp_region ⇒ Object
- #gcp_subnetwork ⇒ Object
- #gcp_username ⇒ Object
- #gcp_zone ⇒ Object
- #node_data ⇒ Object
- #platform_data ⇒ Object
Instance Method Details
#gcp_credentials_file ⇒ Object
36 37 38 |
# File 'lib/cem_acpt/platform/gcp.rb', line 36 def gcp_credentials_file @gcp_credentials_file ||= (@config.get('platform.credentials_file') || File.join(Dir.home, '.config', 'gcloud', 'application_default_credentials.json')) end |
#gcp_disk_size ⇒ Object
68 69 70 |
# File 'lib/cem_acpt/platform/gcp.rb', line 68 def gcp_disk_size @gcp_disk_size ||= (@config.get('node_data.disk_size') || 40) end |
#gcp_machine_type ⇒ Object
64 65 66 |
# File 'lib/cem_acpt/platform/gcp.rb', line 64 def gcp_machine_type @gcp_machine_type ||= (@config.get('node_data.machine_type') || 'e2-small') end |
#gcp_private_key ⇒ Object
56 57 58 |
# File 'lib/cem_acpt/platform/gcp.rb', line 56 def gcp_private_key @gcp_private_key ||= (@run_data[:private_key] || File.join(Dir.home, '.ssh', 'google_compute_engine')) end |
#gcp_project ⇒ Object
40 41 42 |
# File 'lib/cem_acpt/platform/gcp.rb', line 40 def gcp_project @gcp_project ||= (@config.get('platform.project') || `gcloud config get-value project`.chomp) end |
#gcp_public_key ⇒ Object
60 61 62 |
# File 'lib/cem_acpt/platform/gcp.rb', line 60 def gcp_public_key @gcp_public_key ||= (@run_data[:public_key] || File.join(Dir.home, '.ssh', 'google_compute_engine.pub')) end |
#gcp_region ⇒ Object
44 45 46 |
# File 'lib/cem_acpt/platform/gcp.rb', line 44 def gcp_region @gcp_region ||= (@config.get('platform.region') || `gcloud config get-value compute/region`.chomp) end |
#gcp_subnetwork ⇒ Object
52 53 54 |
# File 'lib/cem_acpt/platform/gcp.rb', line 52 def gcp_subnetwork @gcp_subnetwork ||= (@config.get('platform.subnetwork') || 'default') end |
#gcp_username ⇒ Object
29 30 31 32 33 34 |
# File 'lib/cem_acpt/platform/gcp.rb', line 29 def gcp_username return @gcp_username if @gcp_username @gcp_username = @config.get('platform.username') @gcp_username ||= JSON.parse(`gcloud compute os-login describe-profile --format json`.chomp)['posixAccounts'].first['username'] end |
#gcp_zone ⇒ Object
48 49 50 |
# File 'lib/cem_acpt/platform/gcp.rb', line 48 def gcp_zone @gcp_zone ||= (@config.get('platform.zone') || `gcloud config get-value compute/zone`.chomp) end |
#node_data ⇒ Object
20 21 22 23 24 25 26 27 |
# File 'lib/cem_acpt/platform/gcp.rb', line 20 def node_data { machine_type: gcp_machine_type, image: image_name, disk_size: gcp_disk_size, test_name: @test_data[:test_name], } end |
#platform_data ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/cem_acpt/platform/gcp.rb', line 7 def platform_data { username: gcp_username, credentials_file: gcp_credentials_file, project: gcp_project, region: gcp_region, zone: gcp_zone, subnetwork: gcp_subnetwork, private_key: gcp_private_key, public_key: gcp_public_key, } end |