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.
- checksums.yaml +4 -4
- data/README.md +143 -17
- data/lib/kplay/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 448f93f598e3390c0357bf92d85f41dbb69bb8a83951c9b78c0e4a2d3227aab2
|
|
4
|
+
data.tar.gz: 16e8791c0594021303f0dd222af720dd59f933d247015d596b970b4d43e78a92
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 02c3b9b9207c935e4fdb38a318cdfb9f9f879c9066952d6201a2af508ce375bbf199219d6a5c64840ef46778a8bb82651b611659852eb64993c331fac3fbd6e2
|
|
7
|
+
data.tar.gz: 221f485fcbff701b9c5bac451faeda8b3bcfdd2dc3b98eaa4c3f2991ddf93170fd7492c545751a63f33fff58209b25e07ba27b505cff3b14b65fb60a0f374cc5
|
data/README.md
CHANGED
|
@@ -1,38 +1,164 @@
|
|
|
1
|
-
#
|
|
1
|
+
# kplay
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Run your project in a container inside a `minikube` k8s cluster.
|
|
4
4
|
|
|
5
|
-
|
|
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
|
-
|
|
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
|
-
|
|
12
|
-
|
|
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
|
-
|
|
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
|
-
|
|
68
|
+
```bash
|
|
69
|
+
kplay -i my-dev-image
|
|
70
|
+
```
|
|
18
71
|
|
|
19
|
-
|
|
72
|
+
When you exit the shell, the container is automatically stopped.
|
|
20
73
|
|
|
21
|
-
|
|
74
|
+
### `kplay start` and `kplay open`
|
|
22
75
|
|
|
23
|
-
|
|
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
|
-
|
|
78
|
+
In this case you can separately start the container in a "detached" mode:
|
|
26
79
|
|
|
27
|
-
|
|
80
|
+
```bash
|
|
81
|
+
username:~ $ cd projects/hello
|
|
82
|
+
username:hello $ kplay start
|
|
83
|
+
pod/hello configured
|
|
84
|
+
username:hello $
|
|
85
|
+
```
|
|
28
86
|
|
|
29
|
-
|
|
87
|
+
The container should be running now, which you can verify by listing the k8s pods:
|
|
30
88
|
|
|
31
|
-
|
|
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
|
-
|
|
95
|
+
Now to open a shell into it, run `kplay open` from the project folder:
|
|
34
96
|
|
|
35
|
-
|
|
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