kubes_google 0.3.9 → 0.3.10
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 +4 -4
- data/CHANGELOG.md +6 -0
- data/lib/kubes_google/secrets/fetcher.rb +7 -2
- data/lib/kubes_google/service_account.rb +15 -8
- data/lib/kubes_google/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb741f591115d3b288978ec1f2c3a442d911bfd4553f0a606eb9c579c32e20bd
|
4
|
+
data.tar.gz: 48809f850b487a187ffe12188c9ea7fb2a9446bbdd798b5aaf5a4cc76bf3f784
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 227d531538e94ce3a1746aa28b3fe9de339e45cf8450edc1171c304d4fc6f49e2041206fe70d0de8620a3a61d583ccb831114a114a50b9f20da15a668faabba7
|
7
|
+
data.tar.gz: b44bf02993394a774e6e45225650bd2e952c63080171df243a2fdd6adbedad1284350464a3ee2da1508fcb4fd4a56cf40c7f8b680dc68b0c1b9f94ee4e521162
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,12 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
This project *loosely tries* to adhere to [Semantic Versioning](http://semver.org/), even before v1.0.
|
5
5
|
|
6
|
+
## [0.3.10] - 2022-08-19
|
7
|
+
- [#11](https://github.com/boltops-tools/kubes_google/pull/11) Google service account fixes
|
8
|
+
- KUBES_MOCK_SECRET ability
|
9
|
+
- dont add project iam binding if already exists
|
10
|
+
- fix iam service has_role? check
|
11
|
+
|
6
12
|
## [0.3.9] - 2022-02-16
|
7
13
|
- [#10](https://github.com/boltops-tools/kubes_google/pull/10) google_secret_data helper
|
8
14
|
|
@@ -10,8 +10,13 @@ class KubesGoogle::Secrets
|
|
10
10
|
@@cache = {}
|
11
11
|
def fetch(short_name)
|
12
12
|
return @@cache[short_name] if @@cache[short_name]
|
13
|
-
|
14
|
-
|
13
|
+
if ENV['KUBES_MOCK_SECRET']
|
14
|
+
logger.info "KUBES_MOCK_SECRET=1 is set. Mocking secret: #{short_name}"
|
15
|
+
@@cache[short_name] = "mock"
|
16
|
+
else
|
17
|
+
logger.debug "Fetching secret: #{short_name}"
|
18
|
+
@@cache[short_name] = fetcher.fetch(short_name)
|
19
|
+
end
|
15
20
|
rescue KubesGoogle::VpnSslError
|
16
21
|
logger.info "Retry fetching secret with the gcloud strategy"
|
17
22
|
fetcher = Gcloud.new(@options)
|
@@ -34,14 +34,14 @@ module KubesGoogle
|
|
34
34
|
logger.debug "Creating GKE IAM Binding"
|
35
35
|
member = "serviceAccount:#{@google_project}.svc.id.goog[#{@namespace}/#{@ksa}]"
|
36
36
|
|
37
|
-
found = sh "gcloud iam service-accounts get-iam-policy #{@service_account} | grep -F #{member} > /dev/null"
|
37
|
+
found = sh "gcloud iam service-accounts get-iam-policy '#{@service_account}' | grep -F '#{member}' > /dev/null"
|
38
38
|
return if found
|
39
39
|
|
40
40
|
sh "gcloud iam service-accounts add-iam-policy-binding \
|
41
41
|
--role roles/iam.workloadIdentityUser \
|
42
|
-
--member #{member} \
|
42
|
+
--member '#{member}' \
|
43
43
|
--condition=None \
|
44
|
-
#{@service_account}".squish
|
44
|
+
'#{@service_account}'".squish
|
45
45
|
end
|
46
46
|
|
47
47
|
def add_roles
|
@@ -58,21 +58,28 @@ module KubesGoogle
|
|
58
58
|
end
|
59
59
|
|
60
60
|
def has_role?(role)
|
61
|
-
|
62
|
-
data = JSON.load(out)
|
61
|
+
data = project_iam_policies
|
63
62
|
bindings = data['bindings']
|
64
63
|
binding = bindings.find { |b| b['role'] == role }
|
65
64
|
return false unless binding
|
66
|
-
binding['members'].include?(@service_account)
|
65
|
+
binding['members'].include?("serviceAccount:#{@service_account}")
|
66
|
+
end
|
67
|
+
|
68
|
+
@@project_iam_policies = nil
|
69
|
+
def project_iam_policies
|
70
|
+
return @@project_iam_policies if @@project_iam_policies
|
71
|
+
logger.debug "=> gcloud projects get-iam-policy #{@google_project} --format json"
|
72
|
+
out = capture "gcloud projects get-iam-policy #{@google_project} --format json"
|
73
|
+
@@project_iam_policies = JSON.load(out)
|
67
74
|
end
|
68
75
|
|
69
76
|
def add_role(role)
|
70
77
|
return if has_role?(role)
|
71
78
|
|
72
79
|
sh "gcloud projects add-iam-policy-binding #{@google_project} \
|
73
|
-
--member=serviceAccount:#{@service_account} \
|
80
|
+
--member='serviceAccount:#{@service_account}' \
|
74
81
|
--condition=None \
|
75
|
-
--role
|
82
|
+
--role='#{role}' > /dev/null".squish
|
76
83
|
end
|
77
84
|
end
|
78
85
|
end
|
data/lib/kubes_google/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kubes_google
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-08-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -160,7 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
160
160
|
- !ruby/object:Gem::Version
|
161
161
|
version: '0'
|
162
162
|
requirements: []
|
163
|
-
rubygems_version: 3.
|
163
|
+
rubygems_version: 3.3.12
|
164
164
|
signing_key:
|
165
165
|
specification_version: 4
|
166
166
|
summary: Kubes Google Helpers Library
|