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: 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