kube_cluster 0.1.1 → 0.2.1

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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/release.yml +43 -0
  3. data/.github/workflows/tag-gem-version-bump.yml +47 -0
  4. data/.gitignore +2 -1
  5. data/.rubocop.yml +6017 -0
  6. data/Gemfile.lock +104 -0
  7. data/bin/console +4 -1
  8. data/bin/dev +4 -0
  9. data/bin/increment-version +4 -5
  10. data/bin/release-gem +2 -2
  11. data/bin/tag-version +2 -2
  12. data/docker-compose.yml +26 -0
  13. data/examples/01-basic-redis-pod/manifest.rb +60 -0
  14. data/examples/database/manifest.rb +238 -0
  15. data/examples/version2/demo.rb +87 -0
  16. data/examples/version2/helpers.rb +18 -0
  17. data/examples/version2/my_app.rb +45 -0
  18. data/examples/version2/postgresql.rb +81 -0
  19. data/examples/version2/ruby_on_rails.rb +31 -0
  20. data/examples/web-app/manifest.rb +215 -0
  21. data/flake.lock +3 -3
  22. data/flake.nix +6 -0
  23. data/kube_cluster.gemspec +7 -3
  24. data/lib/kube/cli/cluster.rb +41 -0
  25. data/lib/kube/cluster/connection.rb +18 -0
  26. data/lib/kube/cluster/instance.rb +21 -0
  27. data/lib/kube/cluster/manifest/middleware/annotations.rb +32 -0
  28. data/lib/kube/cluster/manifest/middleware/hpa_for_deployment.rb +109 -0
  29. data/lib/kube/cluster/manifest/middleware/ingress_for_service.rb +89 -0
  30. data/lib/kube/cluster/manifest/middleware/labels.rb +59 -0
  31. data/lib/kube/cluster/manifest/middleware/namespace.rb +31 -0
  32. data/lib/kube/cluster/manifest/middleware/pod_anti_affinity.rb +61 -0
  33. data/lib/kube/cluster/manifest/middleware/resource_preset.rb +64 -0
  34. data/lib/kube/cluster/manifest/middleware/security_context.rb +84 -0
  35. data/lib/kube/cluster/manifest/middleware/service_for_deployment.rb +69 -0
  36. data/lib/kube/cluster/manifest/middleware.rb +178 -0
  37. data/lib/kube/cluster/manifest/stack.rb +56 -0
  38. data/lib/kube/cluster/manifest.rb +76 -0
  39. data/lib/kube/cluster/resource/dirty_tracking.rb +113 -0
  40. data/lib/kube/cluster/resource/persistence.rb +67 -0
  41. data/lib/kube/cluster/resource.rb +21 -0
  42. data/lib/kube/cluster/version.rb +7 -0
  43. data/lib/kube/cluster/version.rb.erb +7 -0
  44. data/lib/kube/cluster.rb +22 -0
  45. data/lib/kube/errors.rb +57 -0
  46. metadata +80 -9
  47. data/Rakefile +0 -11
  48. data/exe/kube_cluster +0 -6
  49. data/kube_cluster.gemspec.erb +0 -34
  50. data/lib/kube_cluster/version.rb +0 -5
  51. data/lib/kube_cluster/version.rb.erb +0 -5
  52. data/lib/kube_cluster.rb +0 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 36ca95d5ddbcf4a00074373416d41b6602a69e5dc00a86aab4d78cc97007290b
4
- data.tar.gz: 20419b1c28796a0e5ad5dd42b51ec8facd12e26e122f369723464df527a7569e
3
+ metadata.gz: f6b2fcc6e1de8c59841b080e8150aa249d84fc064f4eab2e981be9ded9dc2290
4
+ data.tar.gz: 1a55810edfb5809b44699e2a17984b9f0311257aba52796da6b74e293ce3a9d0
5
5
  SHA512:
6
- metadata.gz: 3d249161f9e66d25051dee7baec44b6a0cd435d82606dc9f93864bd1bfa14d2ae6b1d70354279f5e0eb18d2f43355f6610f34102fad402e44fc00e64b0f5923c
7
- data.tar.gz: 72c3d7ce7fccf11da8615497d12166e198b63e0efe10d2c7d9e59479899400097c8be6d8a6086d4e6ac48ecf924ef81bf7940ad5db85e7959427168e24d0dfba
6
+ metadata.gz: b64081cec15ce53b3a80effecba8f2ae3ec43ee58d1dc483196a821f37a4d6aa0aabbdd3d21e5df7eb5208cbd8bdbcf1aefbf82a9911733795b5ad4689c2c62e
7
+ data.tar.gz: ef610d9b33d6907a92f69c077080a8f26ffd6a1e2f2e391b9f54564187b6799af2e275b2f9f6cb3b056f3f9b3952b964921692a2d4456ee5ee7af229b209ac0c
@@ -0,0 +1,43 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+
8
+ jobs:
9
+
10
+
11
+
12
+ build-and-push-gem:
13
+ uses: ./.github/workflows/build-and-push-gem.yml
14
+ permissions:
15
+ contents: read
16
+ id-token: write
17
+ secrets: inherit
18
+
19
+
20
+
21
+ github-release:
22
+
23
+ needs: [build-and-push-gem]
24
+
25
+ runs-on: ubuntu-24.04
26
+ permissions:
27
+ contents: write
28
+ steps:
29
+ - uses: actions/download-artifact@v4
30
+ with:
31
+ path: release/
32
+ merge-multiple: true
33
+
34
+ - name: Consolidate checksums
35
+ run: |
36
+ cd release
37
+ cat SHA256SUMS-linux-*.txt > SHA256SUMS.txt
38
+ rm SHA256SUMS-linux-*.txt
39
+
40
+ - uses: softprops/action-gh-release@v2
41
+ with:
42
+ files: release/*
43
+ generate_release_notes: true
@@ -0,0 +1,47 @@
1
+ name: Auto-tag on version bump
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+
7
+ jobs:
8
+ tag:
9
+ runs-on: ubuntu-24.04
10
+ permissions:
11
+ contents: write
12
+ steps:
13
+ - uses: actions/checkout@v4
14
+ with:
15
+ fetch-depth: 0
16
+
17
+ - uses: ruby/setup-ruby@v1
18
+ with:
19
+ ruby-version: '3.4'
20
+
21
+ - name: Read version from gemspec
22
+ id: read
23
+ run: |
24
+ version=$(ruby -e '
25
+ spec = Gem::Specification.load(Dir["*.gemspec"].first)
26
+ puts spec.version
27
+ ')
28
+ echo "version=$version" >> "$GITHUB_OUTPUT"
29
+
30
+ - name: Check if tag exists
31
+ id: check
32
+ run: |
33
+ tag="v${{ steps.read.outputs.version }}"
34
+ if git rev-parse "$tag" >/dev/null 2>&1; then
35
+ echo "exists=true" >> "$GITHUB_OUTPUT"
36
+ else
37
+ echo "exists=false" >> "$GITHUB_OUTPUT"
38
+ fi
39
+
40
+ - name: Create and push tag
41
+ if: steps.check.outputs.exists == 'false'
42
+ run: |
43
+ tag="v${{ steps.read.outputs.version }}"
44
+ git config user.name "Nathan K"
45
+ git config user.email "nathankidd@hey.com"
46
+ git tag -a "$tag" -m "Release $tag"
47
+ git push origin "$tag"
data/.gitignore CHANGED
@@ -1,7 +1,8 @@
1
1
  *.gem
2
+ .direnv
2
3
  /.bundle/
3
4
  /coverage/
4
5
  /pkg/
5
6
  /tmp/
6
7
  /vendor/bundle
7
- Gemfile.lock
8
+ /kubeconfig.yaml