kubernetes-deploy 0.12.5 → 0.12.6

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
  SHA1:
3
- metadata.gz: a7d6c5ab6b0e0dacbe697e1c31304e3393a6efdb
4
- data.tar.gz: 3a04f9387411d3bcad0242f869da7d2abc2cd614
3
+ metadata.gz: 30e7fe8de60782a48c2a07c64744f39c5b0f991d
4
+ data.tar.gz: 7ab5e12db39d05c5b5a881db0b8a955c5e74ee70
5
5
  SHA512:
6
- metadata.gz: ba9bfe0c5b6a088c1163b28ddabb64bfb17156c135ee03160a4b119cd502cca1fa4c617f19f0c62e52e393adb4323cde138ad93e7c3bc6e5fefc843f0ffa766e
7
- data.tar.gz: be46425cf8c5c9996b9bfbee3085f7a85f72ef8777d85e0aaba24d676f5047d544d6c2e4125ac6a85e3fc8129fb0a8bc1ad2098ccccb6d321aad1938762ccae1
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
- redis, _err, st = kubectl.run("get", "cloudsqls", @name, "-o=json")
65
+ cloudsql, _err, st = kubectl.run("get", "cloudsqls", @name, "-o=json")
66
66
  if st.success?
67
- parsed = JSON.parse(redis)
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
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module KubernetesDeploy
3
- VERSION = "0.12.5"
3
+ VERSION = "0.12.6"
4
4
  end
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.5
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-09-28 00:00:00.000000000 Z
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