kplay 0.4.4 → 0.4.5

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