kplay 0.4.4 → 0.4.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +143 -17
  3. data/lib/kplay/version.rb +1 -1
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 53910f55f7866149ac49ba24929c0910426acc650110ca8af0dc5bdcdab8579f
4
- data.tar.gz: 29e33b1b25d5d9b2b29dd1e3ff6a24b9ef69b86fb25dd09f0ca43f6167aa86a7
3
+ metadata.gz: 448f93f598e3390c0357bf92d85f41dbb69bb8a83951c9b78c0e4a2d3227aab2
4
+ data.tar.gz: 16e8791c0594021303f0dd222af720dd59f933d247015d596b970b4d43e78a92
5
5
  SHA512:
6
- metadata.gz: bfb686244d9a400d308912bed2e345b107e86245ea837814b1e62485c2e311823944edea710cabf2f628f789671f691b081f0f8a5aeee6ed23eb315c0b9bcdba
7
- data.tar.gz: ab33ebcdbe5ed11a0579252f7a6e9f875ce62a1150a59345da467beb51cc84b8afd1ae05aae14a55c435b3d399868de5f32623a7a3aaa885c01ced338ff29065
6
+ metadata.gz: 02c3b9b9207c935e4fdb38a318cdfb9f9f879c9066952d6201a2af508ce375bbf199219d6a5c64840ef46778a8bb82651b611659852eb64993c331fac3fbd6e2
7
+ data.tar.gz: 221f485fcbff701b9c5bac451faeda8b3bcfdd2dc3b98eaa4c3f2991ddf93170fd7492c545751a63f33fff58209b25e07ba27b505cff3b14b65fb60a0f374cc5
data/README.md CHANGED
@@ -1,38 +1,164 @@
1
- # Kplay
1
+ # kplay
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/kplay`. To experiment with that code, run `bin/console` for an interactive prompt.
3
+ Run your project in a container inside a `minikube` k8s cluster.
4
4
 
5
- TODO: Delete this and the text above, and describe your gem
5
+
6
+ ## Prerequisites
7
+
8
+ To use `kplay` you need to have the following set up on your machine:
9
+
10
+ * Ruby 2.7+
11
+ * [minikube](https://minikube.sigs.k8s.io/docs/)
12
+ * Docker image(s) with your development environment,
13
+ e.g. [like this one](https://github.com/kukushkin/devenv/tree/master/images/dev)
6
14
 
7
15
  ## Installation
8
16
 
9
- Add this line to your application's Gemfile:
17
+ Install `kplay` gem for your user only:
18
+
19
+ ```bash
20
+ gem i kplay
21
+ ```
22
+
23
+ Or system-wide:
24
+ ```bash
25
+ sudo gem i kplay
26
+ ```
27
+
28
+ ## How to use
29
+
30
+
31
+ Run `kplay help` to list all available commands:
32
+ ```bash
33
+ $ kplay help
10
34
 
11
- ```ruby
12
- gem 'kplay'
35
+ Commands:
36
+ kplay config # Displays local configuration
37
+ kplay help [COMMAND] # Describe available commands or one specific command
38
+ kplay info # Displays environment info
39
+ kplay open # Opens a shell session into the container
40
+ kplay play # (default) Starts the container and opens a shell session into it
41
+ kplay pod_config # Displays the pod config
42
+ kplay start # Starts a container (pod) with the local folder mounted inside
43
+ kplay status # Displays the cluster and container (pod) status
44
+ kplay stop # Stops the container (pod) associated with the local folder
45
+
46
+ Options:
47
+ v, [--verbose], [--no-verbose]
48
+
49
+ ```
50
+
51
+ ### `kplay play` or `kplay` (with no arguments)
52
+
53
+ Starts a development container, mounts your project in it
54
+ and opens a shell into it.
55
+
56
+ Change to your projects directory on your machine and run `kplay` with no arguments:
57
+
58
+ ```bash
59
+ username:~ $ cd projects/hello
60
+ username:hello $ kplay
61
+ pod/hello configured
62
+ hello:/hello $
13
63
  ```
14
64
 
15
- And then execute:
65
+ This runs a container using `dev` as the default name of the development
66
+ Docker image. You can pass an argument to use a different Docker image:
16
67
 
17
- $ bundle
68
+ ```bash
69
+ kplay -i my-dev-image
70
+ ```
18
71
 
19
- Or install it yourself as:
72
+ When you exit the shell, the container is automatically stopped.
20
73
 
21
- $ gem install kplay
74
+ ### `kplay start` and `kplay open`
22
75
 
23
- ## Usage
76
+ The default behaviour (`kplay play`) opens a shell for you, but after your exit it the container is automatically stopped. This can be a limitation: you may want to keep the container running or you may need to open more than one shell into that container.
24
77
 
25
- TODO: Write usage instructions here
78
+ In this case you can separately start the container in a "detached" mode:
26
79
 
27
- ## Development
80
+ ```bash
81
+ username:~ $ cd projects/hello
82
+ username:hello $ kplay start
83
+ pod/hello configured
84
+ username:hello $
85
+ ```
28
86
 
29
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
87
+ The container should be running now, which you can verify by listing the k8s pods:
30
88
 
31
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
89
+ ```bash
90
+ username:hello $ kubectl get pods
91
+ NAME READY STATUS RESTARTS AGE
92
+ hello 1/1 Running 0 9s
93
+ ```
32
94
 
33
- ## Contributing
95
+ Now to open a shell into it, run `kplay open` from the project folder:
34
96
 
35
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/kplay. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
97
+ ```bash
98
+ username:hello $ kplay open
99
+ hello:hello $
100
+ ```
101
+
102
+ This way you can open several sessions into the same container!
103
+ Simply run `kplay open` from the project folder in a different terminal
104
+ window or tab.
105
+
106
+ When you exit the shell in the container, it will still keep running.
107
+ If you are done with it, you will need to stop the container explicitly
108
+ by running `kplay stop` from your project folder:
109
+
110
+ ```bash
111
+ username:hello $ kplay stop
112
+ pod "hello" deleted
113
+ username:hello $
114
+ ```
115
+
116
+ ## Configuration
117
+
118
+ You can pass some parameters as arguments to `kplay` commands, but much
119
+ more convenient is to configure the global or project specific defaults.
120
+
121
+ `kplay` looks for the configuration files in:
122
+ * `~/.kplay/config` for global defaults
123
+ * `.kplay` in the local (current) folder for project-specific defaults
124
+
125
+ Settings in the `.kplay` in the local folder supercede the settings
126
+ found the global config file.
127
+
128
+ Each `kplay` configuration file is a YAML document with the following
129
+ structure:
130
+
131
+ ```yaml=
132
+
133
+ # Name of the Docker image to use for the development container
134
+ image: ruby-dev
135
+
136
+ # Path inside the container where the project folder is going to be mounted
137
+ mount_path: "/${name}"
138
+
139
+ # Size of the shared memory volume (/dev/shm) inside the container
140
+ shm_size: 64Mi
141
+
142
+ # Command and its args to run inside the container
143
+ # when opening a shell into it
144
+ shell: "/bin/bash"
145
+ shell_args:
146
+ - "-c"
147
+ - cd /${name}; exec "${SHELL:-sh}"
148
+
149
+ # Grace period (seconds) to respect when stopping containers
150
+ stop_grace_period: 15
151
+
152
+ # Custom entries to add to the /etc/hosts file inside the container
153
+ etc_hosts:
154
+ - "1.1.1.1 test-host-alpha"
155
+ - "2.2.2.2 test-host-beta"
156
+
157
+ # Additional volumes/files to be mounted inside the container
158
+ volumes:
159
+ - "~/.ssh/id_rsa:/root/.ssh/id_rsa"
160
+ - "~/.gitconfig:/root/.gitconfig"
161
+ ```
36
162
 
37
163
 
38
164
  ## License
data/lib/kplay/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Kplay
3
- VERSION = '0.4.4'.freeze
3
+ VERSION = "0.4.5".freeze
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kplay
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Kukushkin