8 Commits

Author SHA1 Message Date
9bd8d0c131 all actions should use ruby 3.4
All checks were successful
Gitea Actions Demo / lint (push) Successful in 2m13s
Gitea Actions Demo / test (push) Successful in 2m17s
Gitea Actions Demo / docker (push) Successful in 1m31s
2025-03-30 17:52:00 -05:00
c2c1672802 add docker/metadata-action 2025-03-30 17:51:24 -05:00
af87ba5ed1 devcontainer: enable accessing host Docker socket
All checks were successful
Gitea Actions Demo / lint (push) Successful in 2m29s
Gitea Actions Demo / test (push) Successful in 2m20s
Gitea Actions Demo / release-image (push) Successful in 2m12s
2025-03-30 15:58:41 -05:00
af9f89a7f5 add hostname helper
All checks were successful
Gitea Actions Demo / lint (push) Successful in 29s
Gitea Actions Demo / test (push) Successful in 34s
Gitea Actions Demo / release-image (push) Has been skipped
2025-03-25 20:00:37 -05:00
6f84053124 devcontainer: remove /run directory creation 2025-03-25 19:58:51 -05:00
9c55277924 set the application name 2025-03-25 19:57:30 -05:00
2b7b338742 added /_cat/pid
All checks were successful
Gitea Actions Demo / lint (push) Successful in 26s
Gitea Actions Demo / test (push) Successful in 15s
Gitea Actions Demo / release-image (push) Has been skipped
2025-03-25 18:49:49 -05:00
312e570a02 add /_cat to list all of the other /_cat sub-endpoints 2025-03-25 18:48:25 -05:00
5 changed files with 63 additions and 11 deletions

View File

@@ -1,5 +1,2 @@
ARG VARIANT="3.4.2" ARG VARIANT="3.4.2"
FROM ghcr.io/rails/devcontainer/images/ruby:${VARIANT} FROM ghcr.io/rails/devcontainer/images/ruby:${VARIANT}
RUN mkdir /run/kubernaut && \
chown vscode: /run/kubernaut

View File

@@ -6,6 +6,7 @@ services:
dockerfile: Dockerfile dockerfile: Dockerfile
volumes: volumes:
- ..:/workspace:cached - ..:/workspace:cached
- /var/run/docker.sock:/var/run/docker-host.sock
command: sleep infinity command: sleep infinity
memcached: memcached:
image: memcached:latest image: memcached:latest

View File

@@ -13,5 +13,8 @@
"postCreateCommand": ".devcontainer/boot.sh", "postCreateCommand": ".devcontainer/boot.sh",
"forwardPorts": [ "forwardPorts": [
4567 4567
] ],
"features": {
"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {}
}
} }

View File

@@ -1,7 +1,16 @@
--- ---
name: Gitea Actions Demo name: Gitea Actions Demo
run-name: ${{ gitea.actor }} is testing out Gitea Actions 🚀 run-name: ${{ gitea.actor }} is testing out Gitea Actions 🚀
on: [push]
on:
schedule:
- cron: "0 10 * * *"
push:
branches:
- "**"
tags:
- "v*.*.*"
pull_request:
jobs: jobs:
lint: lint:
@@ -16,7 +25,7 @@ jobs:
- name: Ruby Setup - name: Ruby Setup
uses: ruby/setup-ruby@v1 uses: ruby/setup-ruby@v1
with: with:
ruby-version: '3.3' ruby-version: '3.4'
bundler-cache: true bundler-cache: true
- run: bundle install - run: bundle install
@@ -40,9 +49,8 @@ jobs:
- run: bundle exec rake - run: bundle exec rake
release-image: docker:
needs: test needs: test
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: container:
image: catthehacker/ubuntu:act-latest image: catthehacker/ubuntu:act-latest
@@ -55,6 +63,21 @@ jobs:
with: with:
fetch-depth: 0 # all history for all branches and tags fetch-depth: 0 # all history for all branches and tags
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: |
git.kill0.net/ryanc/kubernaut
tags: |
type=schedule
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=sha
- name: Set up Docker Buildx - name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3 uses: docker/setup-buildx-action@v3
@@ -68,5 +91,6 @@ jobs:
- name: Docker build and push - name: Docker build and push
uses: docker/build-push-action@v5 uses: docker/build-push-action@v5
with: with:
push: true push: ${{ github.event_name != 'pull_request' }}
tags: git.kill0.net/ryanc/kubernaut:latest tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

29
app.rb
View File

@@ -25,7 +25,8 @@ SESSION_SECRET_HEX_LENGTH = 64
JWT_SECRET_HEX_LENGTH = 64 JWT_SECRET_HEX_LENGTH = 64
DEFAULT_FLAKEY = 50 DEFAULT_FLAKEY = 50
ENV_PREFIX = "KUBERNAUT" NAME = "kubernaut".freeze
ENV_PREFIX = NAME.upcase
CLK_TCK = 100 CLK_TCK = 100
PROC_UPTIME_PATH = "/proc/uptime".freeze PROC_UPTIME_PATH = "/proc/uptime".freeze
@@ -279,6 +280,10 @@ helpers do
@auth.credentials and @auth.credentials and
@auth.credentials == ["qwer", "asdf"] @auth.credentials == ["qwer", "asdf"]
end end
def hostname
ENV["HOSTNAME"]
end
end end
get "/" do get "/" do
@@ -417,6 +422,20 @@ get "/config", provides: "json" do
jsonify config.as_json, pretty: jsonify config.as_json, pretty:
end end
get "/_cat" do
stream do |out|
out << "=^.^=\n"
x = Sinatra::Application.routes.map do |method, route|
route.map do |route|
route.first.to_s
end
end
x.flatten.sort.uniq.each do |route|
out << "#{route}\n" if route.start_with? "/_cat"
end
end
end
get "/_cat/headers" do get "/_cat/headers" do
stream do |out| stream do |out|
req_headers.each do |k, v| req_headers.each do |k, v|
@@ -456,6 +475,14 @@ get "/_cat/config" do
end end
end end
get "/_cat/pid" do
stream do |out|
{ppid: ppid, pid: Process.pid}.sort.each do |k, v|
out << "#{k}=#{v}\n"
end
end
end
route :delete, :get, :patch, :post, :put, "/status/:code" do route :delete, :get, :patch, :post, :put, "/status/:code" do
# hello # hello
code = Integer(params[:code]) code = Integer(params[:code])