odysseus-core 0.1.0 → 0.2.0
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 +67 -22
- data/lib/odysseus/core/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: 8fe8c4589fdd306206eab129be5961feebe72c245a1a1ea1e02a3979b55586c6
|
|
4
|
+
data.tar.gz: 4554cacf3de2f7aa179139a635e92084cdd64166d5bb7fbc93da46fda95b1482
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5234fe2b6c49ad5e39bcae8c038e2db258c2a5e5353bf7961f7b5b01e60fc33852a818d59b8c3ad449d7bb65e8bb54054b796330f94ceb21e484010c1f4124d0
|
|
7
|
+
data.tar.gz: 85bdcf35c68b497af9116842166f0ab8fe6c7b90e6c82aa87d09f777468f174e3b7cabbcc67eab2fb682c8899af749c1bd478c55bc9f97a411e183822c547a38
|
data/README.md
CHANGED
|
@@ -1,43 +1,88 @@
|
|
|
1
|
-
# Odysseus
|
|
1
|
+
# Odysseus Core
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
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/odysseus/core`. To experiment with that code, run `bin/console` for an interactive prompt.
|
|
3
|
+
Core library for [Odysseus](https://github.com/WA-Systems-EU/odysseus), a zero-downtime Docker deployment tool with Caddy reverse proxy integration.
|
|
6
4
|
|
|
7
5
|
## Installation
|
|
8
6
|
|
|
9
|
-
TODO: Replace `UPDATE_WITH_YOUR_GEM_NAME_IMMEDIATELY_AFTER_RELEASE_TO_RUBYGEMS_ORG` with your gem name right after releasing it to RubyGems.org. Please do not do it earlier due to security reasons. Alternatively, replace this section with instructions to install your gem from git if you don't plan to release to RubyGems.org.
|
|
10
|
-
|
|
11
|
-
Install the gem and add to the application's Gemfile by executing:
|
|
12
|
-
|
|
13
7
|
```bash
|
|
14
|
-
|
|
8
|
+
gem install odysseus-core
|
|
15
9
|
```
|
|
16
10
|
|
|
17
|
-
|
|
11
|
+
Or add to your Gemfile:
|
|
18
12
|
|
|
19
|
-
```
|
|
20
|
-
gem
|
|
13
|
+
```ruby
|
|
14
|
+
gem 'odysseus-core'
|
|
21
15
|
```
|
|
22
16
|
|
|
17
|
+
## Overview
|
|
18
|
+
|
|
19
|
+
Odysseus Core provides the foundational components for Docker container deployment:
|
|
20
|
+
|
|
21
|
+
- **Configuration parsing** - YAML-based deploy.yml configuration
|
|
22
|
+
- **Docker client** - Container lifecycle management via SSH
|
|
23
|
+
- **Caddy client** - Reverse proxy configuration and routing
|
|
24
|
+
- **Deployer** - Zero-downtime deployment orchestration
|
|
25
|
+
- **Secrets** - Encrypted secrets file support
|
|
26
|
+
|
|
23
27
|
## Usage
|
|
24
28
|
|
|
25
|
-
|
|
29
|
+
This gem is primarily used by [odysseus-cli](https://rubygems.org/gems/odysseus-cli). For direct usage:
|
|
26
30
|
|
|
27
|
-
|
|
31
|
+
```ruby
|
|
32
|
+
require 'odysseus'
|
|
28
33
|
|
|
29
|
-
|
|
34
|
+
# Parse configuration
|
|
35
|
+
parser = Odysseus::Config::Parser.new('deploy.yml')
|
|
36
|
+
config = parser.parse
|
|
30
37
|
|
|
31
|
-
|
|
38
|
+
# Create executor
|
|
39
|
+
executor = Odysseus::Deployer::Executor.new('deploy.yml')
|
|
32
40
|
|
|
33
|
-
|
|
41
|
+
# Deploy
|
|
42
|
+
executor.deploy_all(image_tag: 'v1.0.0')
|
|
43
|
+
```
|
|
34
44
|
|
|
35
|
-
|
|
45
|
+
## Components
|
|
36
46
|
|
|
37
|
-
|
|
47
|
+
### Odysseus::Config::Parser
|
|
38
48
|
|
|
39
|
-
|
|
49
|
+
Parses deploy.yml configuration files with support for:
|
|
50
|
+
- Server roles (web, jobs, workers)
|
|
51
|
+
- Proxy configuration (Caddy)
|
|
52
|
+
- Accessories (databases, Redis, etc.)
|
|
53
|
+
- Environment variables and secrets
|
|
54
|
+
- AWS Auto Scaling Group integration
|
|
40
55
|
|
|
41
|
-
|
|
56
|
+
### Odysseus::Docker::Client
|
|
57
|
+
|
|
58
|
+
Docker operations via SSH:
|
|
59
|
+
- Container lifecycle (run, stop, remove)
|
|
60
|
+
- Image management
|
|
61
|
+
- Health checks
|
|
62
|
+
- Log streaming
|
|
63
|
+
|
|
64
|
+
### Odysseus::Caddy::Client
|
|
65
|
+
|
|
66
|
+
Caddy reverse proxy management:
|
|
67
|
+
- Dynamic upstream configuration
|
|
68
|
+
- Zero-downtime routing updates
|
|
69
|
+
- TLS certificate management
|
|
70
|
+
|
|
71
|
+
### Odysseus::Deployer::Executor
|
|
72
|
+
|
|
73
|
+
Deployment orchestration:
|
|
74
|
+
- Build and distribute images
|
|
75
|
+
- Zero-downtime container replacement
|
|
76
|
+
- Health check verification
|
|
77
|
+
- Automatic rollback on failure
|
|
78
|
+
|
|
79
|
+
### Odysseus::Secrets::EncryptedFile
|
|
80
|
+
|
|
81
|
+
Encrypted secrets management:
|
|
82
|
+
- AES-256-GCM encryption
|
|
83
|
+
- Environment variable injection
|
|
84
|
+
- Secure key management
|
|
85
|
+
|
|
86
|
+
## License
|
|
42
87
|
|
|
43
|
-
|
|
88
|
+
LGPL-3.0-only
|