cfn-vpn 0.5.0 → 0.5.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 55d1d34bbcec9a355d6b73ce1d9156d4eeaed551ae70d1591771a98bcd81f12a
4
- data.tar.gz: 0d79be873bd64fed0f9821c6da9b6f8e39ebbb0c1582a3289046277bf8521bdb
3
+ metadata.gz: de3c2f9a982c9bf8839d76776c94d1763411d712a10846830b26350d51bb6ec0
4
+ data.tar.gz: b30dc39010bc1f67d3a3c070087c25cfd7b9d0201b1ee6be5390c28988a10d64
5
5
  SHA512:
6
- metadata.gz: 80e02dc0d11a30bcc07c509d5f1c5e11c5a176e54ca3fd9e6f41d26a8cedeefe292ce2a48fe4e94b804ed2b6974374034a36092e163a77afe39a39beb9a7c2a7
7
- data.tar.gz: 9fb519ef4dc2ccc28a7d03fb9c341c8107084ddf6aaadfece24b8108a07b10a2142e675b8fe563d097d8c2c868eb0835ebaa6483ebd744a93380b14a76641a7a
6
+ metadata.gz: 4db85589a2ac42680a662cc2d5fc10e903da31dc059b200c65373e637a4c6b17f78662ec186e7bfe74840ee081d7576083ab21544827cdfa29ef80570c13e0be
7
+ data.tar.gz: 9f0b4111dcd0d253b5c34738cd538cc709ecfa5ed77f75f6d947bfd93e70b3b48c0a2595dfa9a4cef7f090c197d9edb80be81855343f3f8994ab6b44e361373c
@@ -0,0 +1,28 @@
1
+ name: test and build gem
2
+ on:
3
+ push:
4
+ branches: [ master ]
5
+ pull_request:
6
+ branches: [ master ]
7
+
8
+ jobs:
9
+ build:
10
+ name: test + build
11
+ runs-on: ubuntu-latest
12
+
13
+ steps:
14
+ - uses: actions/checkout@v3
15
+
16
+ - name: Set up ruby 2.7
17
+ uses: ruby/setup-ruby@v1
18
+ with:
19
+ ruby-version: 2.7
20
+
21
+ - name: rspec
22
+ run: |
23
+ gem install rspec
24
+ rspec
25
+
26
+ - name: build gem
27
+ run: |
28
+ gem build cfn-vpn.gemspec
@@ -0,0 +1,34 @@
1
+ name: release gem
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ jobs:
8
+ build:
9
+ name: Build + Publish Gem
10
+ runs-on: ubuntu-latest
11
+
12
+ steps:
13
+ - name: Check out the repo
14
+ uses: actions/checkout@v3
15
+
16
+ - name: Set up ruby 2.7
17
+ uses: ruby/setup-ruby@v1
18
+ with:
19
+ ruby-version: 2.7
20
+
21
+ - name: rspec
22
+ run: |
23
+ gem install rspec
24
+ rspec
25
+
26
+ - name: build gem
27
+ run: |
28
+ gem build cfn-vpn.gemspec
29
+
30
+ - name: Publish gem
31
+ uses: dawidd6/action-publish-gem@v1
32
+ with:
33
+ api_key: ${{secrets.RUBYGEMS_API_KEY}}
34
+ github_token: ${{secrets.GITHUB_TOKEN}}
@@ -0,0 +1,33 @@
1
+ name: release docker image
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ jobs:
8
+ build:
9
+ name: Build + Publish Container Image
10
+ runs-on: ubuntu-latest
11
+
12
+ steps:
13
+ - name: Check out the repo
14
+ uses: actions/checkout@v3
15
+
16
+ - name: Set up Docker Buildx
17
+ uses: docker/setup-buildx-action@v1
18
+
19
+ - name: Login to GitHub Container Repository
20
+ uses: docker/login-action@v1
21
+ with:
22
+ registry: ghcr.io
23
+ username: ${{ github.repository_owner }}
24
+ password: ${{ secrets.GHCR_PUSH_TOKEN }}
25
+
26
+ - name: Build and push Container Image to GitHub Container Repository
27
+ uses: docker/build-push-action@v3
28
+ with:
29
+ context: .
30
+ file: ./Dockerfile
31
+ push: true
32
+ tags: ghcr.io/base2services/cfnvpn:${{ github.event.release.tag_name }}
33
+ build-args: CFNVPN_VERSION=${{ github.event.release.tag_name }}
data/Dockerfile CHANGED
@@ -1,14 +1,15 @@
1
- FROM ruby:2.7-alpine
1
+ FROM ruby:2.7
2
2
 
3
- RUN apk add --no-cache easy-rsa git \
4
- # Hack until easy-rsa 3.0.7 is released https://github.com/OpenVPN/easy-rsa/issues/261
5
- && sed -i 's/^RANDFILE\s*=\s\$ENV.*/#&/' /usr/share/easy-rsa/openssl-easyrsa.cnf \
3
+ RUN apt-get update -qq \
4
+ && apt-get install -qqy \
5
+ easy-rsa \
6
+ git \
6
7
  && ln -s /usr/share/easy-rsa/easyrsa /usr/bin/
7
8
 
8
9
  ENV EASYRSA=/usr/share/easy-rsa
9
10
  ENV EASYRSA_BATCH=yes
10
11
 
11
- ARG CFNVPN_VERSION="0.5.0"
12
+ ARG CFNVPN_VERSION="1.5.0"
12
13
 
13
14
  COPY . /src
14
15
 
@@ -17,9 +18,9 @@ WORKDIR /src
17
18
  RUN gem build cfn-vpn.gemspec \
18
19
  && gem install cfn-vpn-${CFNVPN_VERSION}.gem \
19
20
  && rm -rf /src
20
-
21
- RUN addgroup -g 1000 cfnvpn && \
22
- adduser -D -u 1000 -G cfnvpn cfnvpn
21
+
22
+ RUN addgroup --gid 1000 cfnvpn && \
23
+ adduser --home /home/cfnvpn --uid 1000 --disabled-password --gecos GECOS --gid 1000 cfnvpn
23
24
 
24
25
  USER cfnvpn
25
26
 
data/Gemfile.lock CHANGED
@@ -1,66 +1,75 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cfn-vpn (0.2.0)
4
+ cfn-vpn (0.5.0)
5
5
  aws-sdk-acm (~> 1, < 2)
6
6
  aws-sdk-cloudformation (~> 1, < 2)
7
7
  aws-sdk-ec2 (~> 1.95, < 2)
8
8
  aws-sdk-s3 (~> 1, < 2)
9
9
  cfhighlander (~> 0.9, < 1)
10
- cfndsl (~> 0.17, < 1)
10
+ netaddr (= 2.0.4)
11
11
  terminal-table (~> 1, < 2)
12
12
  thor (~> 0.20)
13
13
 
14
14
  GEM
15
15
  remote: https://rubygems.org/
16
16
  specs:
17
- aws-eventstream (1.0.3)
18
- aws-partitions (1.253.0)
19
- aws-sdk-acm (1.23.0)
20
- aws-sdk-core (~> 3, >= 3.56.0)
17
+ addressable (2.8.1)
18
+ public_suffix (>= 2.0.2, < 6.0)
19
+ aws-eventstream (1.2.0)
20
+ aws-partitions (1.707.0)
21
+ aws-sdk-acm (1.55.0)
22
+ aws-sdk-core (~> 3, >= 3.165.0)
21
23
  aws-sigv4 (~> 1.1)
22
- aws-sdk-cloudformation (1.29.0)
23
- aws-sdk-core (~> 3, >= 3.71.0)
24
+ aws-sdk-cloudformation (1.76.0)
25
+ aws-sdk-core (~> 3, >= 3.165.0)
24
26
  aws-sigv4 (~> 1.1)
25
- aws-sdk-core (3.85.1)
26
- aws-eventstream (~> 1.0, >= 1.0.2)
27
- aws-partitions (~> 1, >= 1.239.0)
27
+ aws-sdk-core (3.170.0)
28
+ aws-eventstream (~> 1, >= 1.0.2)
29
+ aws-partitions (~> 1, >= 1.651.0)
30
+ aws-sigv4 (~> 1.5)
31
+ jmespath (~> 1, >= 1.6.1)
32
+ aws-sdk-ec2 (1.364.0)
33
+ aws-sdk-core (~> 3, >= 3.165.0)
28
34
  aws-sigv4 (~> 1.1)
29
- jmespath (~> 1.0)
30
- aws-sdk-ec2 (1.124.0)
31
- aws-sdk-core (~> 3, >= 3.71.0)
35
+ aws-sdk-kms (1.62.0)
36
+ aws-sdk-core (~> 3, >= 3.165.0)
32
37
  aws-sigv4 (~> 1.1)
33
- aws-sdk-kms (1.27.0)
34
- aws-sdk-core (~> 3, >= 3.71.0)
35
- aws-sigv4 (~> 1.1)
36
- aws-sdk-s3 (1.59.0)
37
- aws-sdk-core (~> 3, >= 3.83.0)
38
+ aws-sdk-s3 (1.119.0)
39
+ aws-sdk-core (~> 3, >= 3.165.0)
38
40
  aws-sdk-kms (~> 1)
39
- aws-sigv4 (~> 1.1)
40
- aws-sigv4 (1.1.0)
41
- aws-eventstream (~> 1.0, >= 1.0.2)
42
- cfhighlander (0.10.7)
41
+ aws-sigv4 (~> 1.4)
42
+ aws-sigv4 (1.5.2)
43
+ aws-eventstream (~> 1, >= 1.0.2)
44
+ cfhighlander (0.12.8)
43
45
  aws-sdk-cloudformation (~> 1, < 2)
44
46
  aws-sdk-core (~> 3, < 4)
45
47
  aws-sdk-ec2 (~> 1, < 2)
46
48
  aws-sdk-s3 (~> 1, < 2)
47
- cfndsl (= 0.17.2)
49
+ cfndsl (~> 1.3, < 2)
48
50
  duplicate (~> 1.1)
49
51
  git (~> 1.4, < 2)
50
52
  highline (>= 1.7.10, < 1.8)
51
53
  rubyzip (>= 2.0.0, < 3)
52
54
  thor (~> 0.20, < 1)
53
- cfndsl (0.17.2)
55
+ cfndsl (1.6.0)
56
+ hana (~> 1.3)
54
57
  duplicate (1.1.1)
55
- git (1.5.0)
58
+ git (1.13.2)
59
+ addressable (~> 2.8)
60
+ rchardet (~> 1.8)
61
+ hana (1.3.7)
56
62
  highline (1.7.10)
57
- jmespath (1.4.0)
63
+ jmespath (1.6.2)
64
+ netaddr (2.0.4)
65
+ public_suffix (5.0.1)
58
66
  rake (10.5.0)
59
- rubyzip (2.0.0)
67
+ rchardet (1.8.0)
68
+ rubyzip (2.3.2)
60
69
  terminal-table (1.8.0)
61
70
  unicode-display_width (~> 1.1, >= 1.1.1)
62
71
  thor (0.20.3)
63
- unicode-display_width (1.6.0)
72
+ unicode-display_width (1.8.0)
64
73
 
65
74
  PLATFORMS
66
75
  ruby
@@ -71,4 +80,4 @@ DEPENDENCIES
71
80
  rake (~> 10.0)
72
81
 
73
82
  BUNDLED WITH
74
- 2.0.1
83
+ 2.3.13
@@ -48,6 +48,65 @@ module CfnVpn
48
48
  end
49
49
  end
50
50
 
51
+ def renew(server_cn,client_cn,expiry=nil)
52
+ opts = ""
53
+ unless expiry.nil?
54
+ opts += "--days=#{expiry}"
55
+ end
56
+
57
+ if @easyrsa_local
58
+ ENV["EASYRSA_REQ_CN"] = server_cn
59
+ ENV["EASYRSA_PKI"] = @pki_dir
60
+ system("tar xzfv #{@cert_dir}/ca.tar.gz --directory #{@build_dir}")
61
+ system("easyrsa #{opts} renew server nopass")
62
+ system("easyrsa #{opts} renew #{client_cn} nopass")
63
+ FileUtils.cp(["#{@pki_dir}/ca.crt", "#{@pki_dir}/issued/server.crt", "#{@pki_dir}/private/server.key", "#{@pki_dir}/issued/#{client_cn}.crt", "#{@pki_dir}/private/#{client_cn}.key"], @cert_dir)
64
+ system("tar czfv #{@cert_dir}/ca.tar.gz -C #{@build_dir} pki/")
65
+ else
66
+ @docker_cmd << "-e EASYRSA_REQ_CN=#{server_cn}"
67
+ @docker_cmd << "-e EASYRSA_CLIENT_CN=#{client_cn}"
68
+ @docker_cmd << "-e EASYRSA_OPTS=\"#{opts}\""
69
+ @docker_cmd << "-v #{@cert_dir}:/easy-rsa/output"
70
+ @docker_cmd << @easyrsa_image
71
+ @docker_cmd << "sh -c 'renew'"
72
+ CfnVpn::Log.logger.debug `#{@docker_cmd.join(' ')}`
73
+ end
74
+ end
75
+
76
+ def rebuild(server_cn,client_cn,expiry=nil)
77
+ timestamp = Time.now.getutc.to_i
78
+ opts = ""
79
+ unless expiry.nil?
80
+ opts += "--days=#{expiry}"
81
+ end
82
+
83
+ if @easyrsa_local
84
+ ENV["EASYRSA_REQ_CN"] = server_cn
85
+ ENV["EASYRSA_PKI"] = @pki_dir
86
+ system("tar xzfv #{@cert_dir}/ca.tar.gz --directory #{@build_dir}")
87
+
88
+ FileUtils.mv("#{@pki_dir}/reqs/server.req", "#{@pki_dir}/reqs/server.req.bak-#{timestamp}")
89
+ FileUtils.mv("#{@pki_dir}/issued/server.crt", "#{@pki_dir}/issued/server.req.bak-#{timestamp}")
90
+ FileUtils.mv("#{@pki_dir}/private/server.key", "#{@pki_dir}/private/server.req.bak-#{timestamp}")
91
+ FileUtils.mv("#{@pki_dir}/reqs/#{client_cn}.req", "#{@pki_dir}/reqs/#{client_cn}.req.bak-#{timestamp}")
92
+ FileUtils.mv("#{@pki_dir}/issued/#{client_cn}.crt", "#{@pki_dir}/issued/#{client_cn}.req.bak-#{timestamp}")
93
+ FileUtils.mv("#{@pki_dir}/private/#{client_cn}.key", "#{@pki_dir}/private/#{client_cn}.req.bak-#{timestamp}")
94
+
95
+ system("easyrsa #{opts} build-server-full server nopass")
96
+ system("easyrsa #{opts} build-client-full #{client_cn} nopass")
97
+ FileUtils.cp(["#{@pki_dir}/ca.crt", "#{@pki_dir}/issued/server.crt", "#{@pki_dir}/private/server.key", "#{@pki_dir}/issued/#{client_cn}.crt", "#{@pki_dir}/private/#{client_cn}.key"], @cert_dir)
98
+ system("tar czfv #{@cert_dir}/ca.tar.gz -C #{@build_dir} pki/")
99
+ else
100
+ @docker_cmd << "-e EASYRSA_REQ_CN=#{server_cn}"
101
+ @docker_cmd << "-e EASYRSA_CLIENT_CN=#{client_cn}"
102
+ @docker_cmd << "-e EASYRSA_OPTS=\"#{opts}\""
103
+ @docker_cmd << "-v #{@cert_dir}:/easy-rsa/output"
104
+ @docker_cmd << @easyrsa_image
105
+ @docker_cmd << "sh -c 'rebuild'"
106
+ CfnVpn::Log.logger.debug `#{@docker_cmd.join(' ')}`
107
+ end
108
+ end
109
+
51
110
  def generate_client(client_cn)
52
111
  if @easyrsa_local
53
112
  ENV["EASYRSA_PKI"] = @pki_dir
@@ -0,0 +1,120 @@
1
+ require 'thor'
2
+ require 'fileutils'
3
+ require 'cfnvpn/cloudformation'
4
+ require 'cfnvpn/certificates'
5
+ require 'cfnvpn/cfhighlander'
6
+ require 'cfnvpn/cloudformation'
7
+ require 'cfnvpn/log'
8
+ require 'cfnvpn/clientvpn'
9
+ require 'cfnvpn/globals'
10
+
11
+ module CfnVpn
12
+ class RenewCertificate < Thor::Group
13
+ include Thor::Actions
14
+ include CfnVpn::Log
15
+
16
+ argument :name
17
+
18
+ class_option :profile, aliases: :p, desc: 'AWS Profile'
19
+ class_option :region, aliases: :r, default: ENV['AWS_REGION'], desc: 'AWS Region'
20
+ class_option :verbose, desc: 'set log level to debug', type: :boolean
21
+
22
+ class_option :server_cn, required: true, desc: 'server certificate common name'
23
+ class_option :client_cn, desc: 'client certificate common name'
24
+ class_option :easyrsa_local, type: :boolean, default: false, desc: 'run the easyrsa executable from your local rather than from docker'
25
+ class_option :certificate_expiry, type: :string, desc: 'value in days for when the server certificates expire, defaults to 825 days'
26
+ class_option :rebuild, type: :boolean, default: false, desc: 'generates new certificates from the existing CA for certiciate type VPNs'
27
+ class_option :bucket, required: true, desc: 's3 bucket'
28
+
29
+ def self.source_root
30
+ File.dirname(__FILE__)
31
+ end
32
+
33
+ def set_loglevel
34
+ Log.logger.level = Logger::DEBUG if @options['verbose']
35
+ end
36
+
37
+ def create_build_directory
38
+ @build_dir = "#{CfnVpn.cfnvpn_path}/#{@name}"
39
+ Log.logger.debug "creating directory #{@build_dir}"
40
+ FileUtils.mkdir_p(@build_dir)
41
+ end
42
+
43
+ def initialize_config
44
+ @config = {}
45
+ @config['parameters'] = {}
46
+ @config['template_version'] = '0.2.0'
47
+ end
48
+
49
+ def stack_exist
50
+ @cfn = CfnVpn::Cloudformation.new(@options['region'],@name)
51
+ if !@cfn.does_cf_stack_exist()
52
+ Log.logger.error "#{@name}-cfnvpn stack doesn't exists in this account in region #{@options['region']}\n Try running `cfn-vpn init #{@name}` to setup the stack"
53
+ exit 1
54
+ end
55
+ end
56
+
57
+ def set_client_cn
58
+ @client_cn = @options['client_cn'] ? @options['client_cn'] : "client-vpn.#{@options['server_cn']}"
59
+ end
60
+
61
+ # create certificates
62
+ def generate_server_certificates
63
+ cert = CfnVpn::Certificates.new(@build_dir,@name,@options['easyrsa_local'])
64
+ if @options['rebuild']
65
+ Log.logger.info "rebuilding certificates using openvpn easy-rsa"
66
+ cert.rebuild(@options['server_cn'],@client_cn,@options['certificate_expiry'])
67
+ else
68
+ Log.logger.info "rebuilding certificates using openvpn easy-rsa"
69
+ cert.renew(@options['server_cn'],@client_cn,@options['certificate_expiry'])
70
+ end
71
+ end
72
+
73
+ def upload_certificates
74
+ cert = CfnVpn::Certificates.new(@build_dir,@name,@options['easyrsa_local'])
75
+ @config['parameters']['ServerCertificateArn'] = cert.upload_certificates(@options['region'],'server','server',@options['server_cn'])
76
+ @config['parameters']['ClientCertificateArn'] = cert.upload_certificates(@options['region'],@client_cn,'client')
77
+ s3 = CfnVpn::S3.new(@options['region'],@options['bucket'],@name)
78
+ s3.store_object("#{@build_dir}/certificates/ca.tar.gz")
79
+ end
80
+
81
+ def deploy_vpn
82
+ template('templates/cfnvpn.cfhighlander.rb.tt', "#{@build_dir}/#{@name}.cfhighlander.rb", @config, force: true)
83
+ Log.logger.debug "Generating cloudformation from #{@build_dir}/#{@name}.cfhighlander.rb"
84
+ cfhl = CfnVpn::CfHiglander.new(@options['region'],@name,@config,@build_dir)
85
+ template_path = cfhl.render()
86
+ Log.logger.debug "Cloudformation template #{template_path} generated and validated"
87
+
88
+ Log.logger.info "Modifying cloudformation stack #{@name}-cfnvpn in #{@options['region']}"
89
+ cfn = CfnVpn::Cloudformation.new(@options['region'],@name)
90
+ change_set, change_set_type = cfn.create_change_set(template_path,@config['parameters'])
91
+ cfn.wait_for_changeset(change_set.id)
92
+ changes = cfn.get_change_set(change_set.id)
93
+
94
+ Log.logger.warn("The following changes to the cfnvpn stack will be made")
95
+ changes.changes.each do |change|
96
+ Log.logger.warn("ID: #{change.resource_change.logical_resource_id} Action: #{change.resource_change.action}")
97
+ change.resource_change.details.each do |details|
98
+ Log.logger.warn("Name: #{details.target.name} Attribute: #{details.target.attribute} Cause: #{details.causing_entity}")
99
+ end
100
+ end
101
+
102
+ continue = yes? "Continue?", :green
103
+ if !continue
104
+ Log.logger.error("Cancelled cfn-vpn modifiy #{@name}")
105
+ exit 1
106
+ end
107
+
108
+ cfn.execute_change_set(change_set.id)
109
+ cfn.wait_for_execute(change_set_type)
110
+ Log.logger.debug "Changeset #{change_set_type} complete"
111
+ end
112
+
113
+ def finish
114
+ vpn = CfnVpn::ClientVpn.new(@name,@options['region'])
115
+ @endpoint_id = vpn.get_endpoint_id()
116
+ Log.logger.info "Client VPN #{@endpoint_id} modified."
117
+ end
118
+
119
+ end
120
+ end
@@ -1,4 +1,4 @@
1
1
  module CfnVpn
2
- VERSION = "0.5.0".freeze
2
+ VERSION = "0.5.0.1".freeze
3
3
  CHANGE_SET_VERSION = VERSION.gsub('.', '-').freeze
4
4
  end
data/lib/cfnvpn.rb CHANGED
@@ -9,6 +9,7 @@ require 'cfnvpn/sessions'
9
9
  require 'cfnvpn/routes'
10
10
  require 'cfnvpn/share'
11
11
  require 'cfnvpn/embedded'
12
+ require 'cfnvpn/renew_certificate'
12
13
 
13
14
  module CfnVpn
14
15
  class Cli < Thor
@@ -21,6 +22,9 @@ module CfnVpn
21
22
 
22
23
  register CfnVpn::Init, 'init', 'init [name]', 'Create a AWS Client VPN'
23
24
  tasks["init"].options = CfnVpn::Init.class_options
25
+
26
+ register CfnVpn::RenewCertificate, 'renew', 'renew [name]', 'Create a AWS Client VPN'
27
+ tasks["renew"].options = CfnVpn::RenewCertificate.class_options
24
28
 
25
29
  register CfnVpn::Modify, 'modify', 'modify [name]', 'Modify your AWS Client VPN'
26
30
  tasks["modify"].options = CfnVpn::Modify.class_options
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cfn-vpn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guslington
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-02-20 00:00:00.000000000 Z
11
+ date: 2023-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -194,8 +194,10 @@ executables:
194
194
  extensions: []
195
195
  extra_rdoc_files: []
196
196
  files:
197
+ - ".github/workflows/build-gem.yml"
198
+ - ".github/workflows/release-gem.yml"
199
+ - ".github/workflows/release-image.yml"
197
200
  - ".gitignore"
198
- - ".travis.yml"
199
201
  - Dockerfile
200
202
  - Gemfile
201
203
  - Gemfile.lock
@@ -217,6 +219,7 @@ files:
217
219
  - lib/cfnvpn/init.rb
218
220
  - lib/cfnvpn/log.rb
219
221
  - lib/cfnvpn/modify.rb
222
+ - lib/cfnvpn/renew_certificate.rb
220
223
  - lib/cfnvpn/revoke.rb
221
224
  - lib/cfnvpn/routes.rb
222
225
  - lib/cfnvpn/s3.rb
@@ -246,8 +249,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
246
249
  - !ruby/object:Gem::Version
247
250
  version: '0'
248
251
  requirements: []
249
- rubyforge_project:
250
- rubygems_version: 2.7.6
252
+ rubygems_version: 3.1.6
251
253
  signing_key:
252
254
  specification_version: 4
253
255
  summary: creates and manages resources for the aws client vpn
data/.travis.yml DELETED
@@ -1,17 +0,0 @@
1
- sudo: required
2
- dist: trusty
3
- language: ruby
4
- rvm:
5
- - 2.5
6
- script:
7
- - bundle install
8
- - gem build cfn-vpn.gemspec
9
- - gem install cfn-vpn-*.gem
10
- - cfn-vpn help
11
- deploy:
12
- provider: rubygems
13
- api_key: "${RUBYGEMS_API_KEY}"
14
- gem: cfn-vpn
15
- on:
16
- all_branches: true
17
- condition: $TRAVIS_BRANCH =~ ^develop|master && $TRAVIS_EVENT_TYPE =~ ^push|api$ && $TRAVIS_REPO_SLUG == "base2services/aws-client-vpn"