civo_cli 0.3.10 → 0.3.11

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: 024560b523d64e630b4171c5246c0e346a4b43ce0255f88891a2e38a6f6638d9
4
- data.tar.gz: 13c84db2adba712473576272c6110703ab980105aa7a9d42c0aedcdc0f41d1b2
3
+ metadata.gz: 3363116c1b2b7de8c58c5c01924973acf7afc59ac458a64f0544ec5260d063cd
4
+ data.tar.gz: 07e510a81a639f95ca12b7f73efb3132157a1fefb8ed2e88f566518798c37c61
5
5
  SHA512:
6
- metadata.gz: 2461ec652f57b9543781216fb8f65998673fa3a69b2ededcd2d655f232681bc320446ca5f975b0206b043472d964df6a7dd51f80d5dc1d356107ffa79add87a3
7
- data.tar.gz: 1d0071b595864730781b8e0646b89382d47d95318dc424704587331b34c043e03c2827b17fbf68bba3d14215d4c3688dabf2346a8d7957ca518d53ab28ae2e57
6
+ metadata.gz: 4b4a417bc9fd45c00965cd53bc06bf683c3b56e6ad8e7489bcc659b0569ea38ae42aa4bdd98bbd9d0f69ffe84dc3d5980772ffe938cc3198d684aaee75d89616
7
+ data.tar.gz: 5a7c083587dfabca7e0625070c226b491bb16622aa092f6271c94fd7ac31f8e4e37a9395ca042be10da8e26a16f12c85fd3f49ca7edb608e90dba93c82b49e82
data/CHANGELOG.md CHANGED
@@ -3,6 +3,11 @@ All notable changes to the Civo CLI will be documented in this file.
3
3
 
4
4
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
5
5
 
6
+ ## [0.3.11] - 2019-08-19
7
+ ### Changed
8
+ - Updated `civo` gem dependency for correct Kubernetes endpoints.
9
+ - Aliased `k8s`/`kubernetes` command to be `k3s`
10
+
6
11
  ## [0.3.10] - 2019-08-19
7
12
  ### Added
8
13
  - Alias for `instance public_ip` method as `instance ip`
data/Gemfile.lock CHANGED
@@ -1,9 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- civo_cli (0.3.10)
4
+ civo_cli (0.3.11)
5
5
  bundler (~> 1.17)
6
- civo (>= 1.2.5)
6
+ civo (>= 1.2.7)
7
7
  colorize
8
8
  json
9
9
  terminal-table
@@ -19,7 +19,7 @@ GEM
19
19
  tzinfo (~> 1.1)
20
20
  addressable (2.6.0)
21
21
  public_suffix (>= 2.0.2, < 4.0)
22
- civo (1.2.5)
22
+ civo (1.2.7)
23
23
  commander
24
24
  flexirest (>= 1.4.6)
25
25
  toml
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2019 Aboslute Devops Ltd
3
+ Copyright (c) 2019 Civo Ltd
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/civo_cli.gemspec CHANGED
@@ -49,6 +49,6 @@ Gem::Specification.new do |spec|
49
49
  spec.add_runtime_dependency 'thor'
50
50
  spec.add_runtime_dependency 'colorize'
51
51
  spec.add_runtime_dependency "bundler", "~> 1.17"
52
- spec.add_runtime_dependency 'civo', ">= 1.2.5"
52
+ spec.add_runtime_dependency 'civo', ">= 1.2.7"
53
53
  spec.add_runtime_dependency 'json'
54
54
  end
@@ -1,3 +1,3 @@
1
1
  module CivoCLI
2
- VERSION = "0.3.10"
2
+ VERSION = "0.3.11"
3
3
  end
data/lib/civo_cli.rb CHANGED
@@ -38,7 +38,7 @@ module CivoCLI
38
38
 
39
39
  desc "kubernetes", "manage kubernetess"
40
40
  subcommand "kubernetes", CivoCLI::Kubernetes
41
- map "k8s" => "kubernetes"
41
+ map "k8s" => "kubernetes", "k3s" => "kubernetes"
42
42
 
43
43
  desc "loadbalancer", "manage load balancers"
44
44
  subcommand "loadbalancer", CivoCLI::LoadBalancer
data/lib/instance.rb CHANGED
@@ -8,15 +8,22 @@ module CivoCLI
8
8
  DEFAULT_HOSTNAME = CivoCLI::NameGenerator.create
9
9
 
10
10
  desc "list", "list all instances"
11
+ option :quiet, type: :boolean, aliases: '-q'
11
12
  def list
12
13
  CivoCLI::Config.set_api_auth
13
- rows = []
14
- sizes = Civo::Size.all.items
15
- Civo::Instance.all(per_page: 10_000_000).items.each do |instance|
16
- size_name = sizes.detect {|s| s.name == instance.size}&.nice_name
17
- rows << [instance.id, instance.hostname, size_name, instance.region, instance.public_ip, instance.status]
14
+ if options[:quiet]
15
+ Civo::Instance.all(per_page: 10_000_000).items.each do |instance|
16
+ puts instance.id
17
+ end
18
+ else
19
+ rows = []
20
+ sizes = Civo::Size.all.items
21
+ Civo::Instance.all(per_page: 10_000_000).items.each do |instance|
22
+ size_name = sizes.detect {|s| s.name == instance.size}&.nice_name
23
+ rows << [instance.id, instance.hostname, size_name, instance.region, instance.public_ip, instance.status]
24
+ end
25
+ puts Terminal::Table.new headings: ['ID', 'Hostname', 'Size', 'Region', 'Public IP', 'Status'], rows: rows
18
26
  end
19
- puts Terminal::Table.new headings: ['ID', 'Hostname', 'Size', 'Region', 'Public IP', 'Status'], rows: rows
20
27
  end
21
28
  map "ls" => "list", "all" => "list"
22
29
 
data/lib/kubernetes.rb CHANGED
@@ -3,13 +3,20 @@ require 'tempfile'
3
3
  module CivoCLI
4
4
  class Kubernetes < Thor
5
5
  desc "list", "list all kubernetes clusters"
6
+ option :quiet, type: :boolean, aliases: '-q'
6
7
  def list
7
8
  CivoCLI::Config.set_api_auth
8
- rows = []
9
- Civo::Kubernetes.all.items.each do |cluster|
10
- rows << [cluster.id, cluster.name, cluster.num_target_nodes, cluster.target_nodes_size, cluster.status]
9
+ if options[:quiet]
10
+ Civo::Kubernetes.all.items.each do |cluster|
11
+ puts cluster.id
12
+ end
13
+ else
14
+ rows = []
15
+ Civo::Kubernetes.all.items.each do |cluster|
16
+ rows << [cluster.id, cluster.name, cluster.num_target_nodes, cluster.target_nodes_size, cluster.status]
17
+ end
18
+ puts Terminal::Table.new headings: ['ID', 'Name', '# Nodes', 'Size', 'Status'], rows: rows
11
19
  end
12
- puts Terminal::Table.new headings: ['ID', 'Name', '# Nodes', 'Size', 'Status'], rows: rows
13
20
  rescue Flexirest::HTTPForbiddenClientException
14
21
  reject_user_access
15
22
  end
@@ -75,8 +82,9 @@ module CivoCLI
75
82
  desc "create [NAME] [...]", "create a new kubernetes cluster with the specified name and provided options"
76
83
  option :size, default: 'g2.medium', banner: 'size'
77
84
  option :nodes, default: '3', banner: 'node_count'
78
- option :wait, type: :boolean
85
+ option :wait, type: :boolean, banner: 'wait until cluster is running'
79
86
  option :save, type: :boolean
87
+ option :switch, type: :boolean
80
88
  long_desc <<-LONGDESC
81
89
  Create a new Kubernetes cluster with name (randomly assigned if blank), instance size (default: g2.medium),
82
90
  \x5\x5Optional parameters are as follows:
@@ -84,6 +92,7 @@ module CivoCLI
84
92
  \x5 --nodes=<count> - '3' if blank
85
93
  \x5 --wait - wait for build to complete and show status. Off by default.
86
94
  \x5 --save - save resulting configuration to ~/.kube/config (requires kubectl and the --wait option)
95
+ \x5 --switch - switch context to newly-created cluster (requires kubectl and the --wait and --save options, as well as existing kubeconfig file)
87
96
  LONGDESC
88
97
  def create(name = CivoCLI::NameGenerator.create, *args)
89
98
  CivoCLI::Config.set_api_auth
@@ -197,10 +206,16 @@ module CivoCLI
197
206
  begin
198
207
  tempfile.write(cluster.kubeconfig)
199
208
  tempfile.size
200
- result = `KUBECONFIG=#{tempfile.path}:~/.kube/config kubectl config view --flatten`
209
+ if options[:switch]
210
+ result = `KUBECONFIG=#{tempfile.path}:~/.kube/config kubectl config view --flatten`
211
+ else
212
+ result = `KUBECONFIG=~/.kube/config:#{tempfile.path} kubectl config view --flatten`
213
+ end
201
214
  Dir.mkdir("#{ENV['HOME']}/.kube/") unless Dir.exist?("#{ENV["HOME"]}/.kube/")
202
215
  File.write("#{ENV['HOME']}/.kube/config", result)
203
- if config_file_exists
216
+ if config_file_exists && options[:switch]
217
+ puts "Merged".colorize(:green) + " config into ~/.kube/config and switched context to #{cluster.name}"
218
+ elsif config_file_exists && !options[:switch]
204
219
  puts "Merged".colorize(:green) + " config into ~/.kube/config"
205
220
  else
206
221
  puts "Saved".colorize(:green) + " config to ~/.kube/config"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: civo_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.10
4
+ version: 0.3.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Jeffries
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2019-08-19 00:00:00.000000000 Z
13
+ date: 2019-08-21 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rake
@@ -158,14 +158,14 @@ dependencies:
158
158
  requirements:
159
159
  - - ">="
160
160
  - !ruby/object:Gem::Version
161
- version: 1.2.5
161
+ version: 1.2.7
162
162
  type: :runtime
163
163
  prerelease: false
164
164
  version_requirements: !ruby/object:Gem::Requirement
165
165
  requirements:
166
166
  - - ">="
167
167
  - !ruby/object:Gem::Version
168
- version: 1.2.5
168
+ version: 1.2.7
169
169
  - !ruby/object:Gem::Dependency
170
170
  name: json
171
171
  requirement: !ruby/object:Gem::Requirement
@@ -249,7 +249,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
249
249
  - !ruby/object:Gem::Version
250
250
  version: '0'
251
251
  requirements: []
252
- rubygems_version: 3.0.3
252
+ rubygems_version: 3.0.1
253
253
  signing_key:
254
254
  specification_version: 4
255
255
  summary: CLI for interacting with Civo.com