kubernetes-deploy 0.12.5 → 0.12.6
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
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 30e7fe8de60782a48c2a07c64744f39c5b0f991d
|
4
|
+
data.tar.gz: 7ab5e12db39d05c5b5a881db0b8a955c5e74ee70
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b56c3a7fce60ad02ed740205468b0c0dc6a9e038b43dd0459b6e93ec7f835aaa2d80f9dd826416e91f62f672bf403767dcfad67dbd7d84d8df1967cfee9a6a70
|
7
|
+
data.tar.gz: 0c03d3ca4a194ac8ec3bb864e44d4395df059111c58a1f28d39ab19782eecc9faab64dcc5eb1b599d4cdf8b74b43f33396dfb93335dcfe1f62a768231a86ce65
|
data/README.md
CHANGED
@@ -256,6 +256,8 @@ Based on this specification `kubernetes-run` will create a new pod with the entr
|
|
256
256
|
|
257
257
|
## Setup
|
258
258
|
|
259
|
+
If you work for Shopify, just run `dev up`, but otherwise:
|
260
|
+
|
259
261
|
1. [Install kubectl version 1.6.0 or higher](https://kubernetes.io/docs/user-guide/prereqs/) and make sure it is in your path
|
260
262
|
2. [Install minikube](https://kubernetes.io/docs/getting-started-guides/minikube/#installation) (required to run the test suite)
|
261
263
|
3. Check out the repo
|
data/dev.yml
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
---
|
2
|
+
name: kubernetes-deploy
|
3
|
+
up:
|
4
|
+
- ruby: 2.3.3
|
5
|
+
- bundler
|
6
|
+
- homebrew:
|
7
|
+
- Caskroom/cask/minikube
|
8
|
+
- custom:
|
9
|
+
name: Minikube Cluster
|
10
|
+
met?: test $(minikube status | grep Running | wc -l) -eq 2 && $(minikube status | grep -q 'Correctly Configured')
|
11
|
+
meet: minikube start --vm-driver=xhyve --kubernetes-version=v1.7.5
|
12
|
+
down: minikube stop
|
13
|
+
commands:
|
14
|
+
reset-minikube: minikube delete && rm -rf ~/.minikube
|
15
|
+
test:
|
16
|
+
run: bundle exec rake test
|
17
|
+
tophat:
|
18
|
+
run: PRINT_LOGS=1 bundle exec ruby -I test test/integration/kubernetes_deploy_test.rb -n/${1}/
|
19
|
+
desc: Tophat a change by running a test scenario with logging output enabled.
|
20
|
+
syntax:
|
21
|
+
optional:
|
22
|
+
argument: TEST_REGEX
|
@@ -62,9 +62,9 @@ module KubernetesDeploy
|
|
62
62
|
def cloudsql_resource_uuid
|
63
63
|
return @cloudsql_resource_uuid if defined?(@cloudsql_resource_uuid) && @cloudsql_resource_uuid
|
64
64
|
|
65
|
-
|
65
|
+
cloudsql, _err, st = kubectl.run("get", "cloudsqls", @name, "-o=json")
|
66
66
|
if st.success?
|
67
|
-
parsed = JSON.parse(
|
67
|
+
parsed = JSON.parse(cloudsql)
|
68
68
|
|
69
69
|
@cloudsql_resource_uuid = parsed.dig("metadata", "uid")
|
70
70
|
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module KubernetesDeploy
|
3
|
+
class Memcached < KubernetesResource
|
4
|
+
TIMEOUT = 5.minutes
|
5
|
+
SECRET_NAME = "memcached-url"
|
6
|
+
|
7
|
+
def sync
|
8
|
+
_, _err, st = kubectl.run("get", type, @name)
|
9
|
+
@found = st.success?
|
10
|
+
@deployment_exists = memcached_deployment_exists?
|
11
|
+
@service_exists = memcached_service_exists?
|
12
|
+
@secret_exists = memcached_secret_exists?
|
13
|
+
|
14
|
+
@status = if @deployment_exists && @service_exists && @secret_exists
|
15
|
+
"Provisioned"
|
16
|
+
else
|
17
|
+
"Unknown"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def deploy_succeeded?
|
22
|
+
@deployment_exists && @service_exists && @secret_exists
|
23
|
+
end
|
24
|
+
|
25
|
+
def deploy_failed?
|
26
|
+
false
|
27
|
+
end
|
28
|
+
|
29
|
+
def exists?
|
30
|
+
@found
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def memcached_deployment_exists?
|
36
|
+
deployments, _err, st = kubectl.run("get", "deployments", "-l name=#{@name}", "-o=json")
|
37
|
+
return false unless st.success?
|
38
|
+
parsed = JSON.parse(deployments)
|
39
|
+
return false if parsed.fetch("items", []).count == 0
|
40
|
+
deployment = parsed.fetch("items", []).first
|
41
|
+
status = deployment.fetch("status", {})
|
42
|
+
status.fetch("availableReplicas", -1) == status.fetch("replicas", 0)
|
43
|
+
end
|
44
|
+
|
45
|
+
def memcached_service_exists?
|
46
|
+
services, _err, st = kubectl.run("get", "services", "-l name=#{@name}", "-o=json")
|
47
|
+
return false unless st.success?
|
48
|
+
parsed = JSON.parse(services)
|
49
|
+
return false if parsed.fetch("items", []).count == 0
|
50
|
+
service = parsed.fetch("items", []).first
|
51
|
+
service.dig("spec", "clusterIP").present?
|
52
|
+
end
|
53
|
+
|
54
|
+
def memcached_secret_exists?
|
55
|
+
secret, _err, st = kubectl.run("get", "secrets", SECRET_NAME, "-o=json")
|
56
|
+
return false unless st.success?
|
57
|
+
parsed = JSON.parse(secret)
|
58
|
+
parsed.dig("data", @name).present?
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -14,6 +14,7 @@ require 'kubernetes-deploy/kubernetes_resource'
|
|
14
14
|
persistent_volume_claim
|
15
15
|
pod
|
16
16
|
redis
|
17
|
+
memcached
|
17
18
|
service
|
18
19
|
pod_template
|
19
20
|
bugsnag
|
@@ -38,6 +39,7 @@ module KubernetesDeploy
|
|
38
39
|
ResourceQuota
|
39
40
|
Cloudsql
|
40
41
|
Redis
|
42
|
+
Memcached
|
41
43
|
Bugsnag
|
42
44
|
ConfigMap
|
43
45
|
PersistentVolumeClaim
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kubernetes-deploy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.12.
|
4
|
+
version: 0.12.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Katrina Verey
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-10-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -200,6 +200,7 @@ files:
|
|
200
200
|
- bin/ci
|
201
201
|
- bin/setup
|
202
202
|
- bin/test
|
203
|
+
- dev.yml
|
203
204
|
- dev/flamegraph-from-tests
|
204
205
|
- exe/kubernetes-deploy
|
205
206
|
- exe/kubernetes-restart
|
@@ -221,6 +222,7 @@ files:
|
|
221
222
|
- lib/kubernetes-deploy/kubernetes_resource/daemon_set.rb
|
222
223
|
- lib/kubernetes-deploy/kubernetes_resource/deployment.rb
|
223
224
|
- lib/kubernetes-deploy/kubernetes_resource/ingress.rb
|
225
|
+
- lib/kubernetes-deploy/kubernetes_resource/memcached.rb
|
224
226
|
- lib/kubernetes-deploy/kubernetes_resource/persistent_volume_claim.rb
|
225
227
|
- lib/kubernetes-deploy/kubernetes_resource/pod.rb
|
226
228
|
- lib/kubernetes-deploy/kubernetes_resource/pod_disruption_budget.rb
|