This commit is contained in:
parent
bbfbba74cc
commit
8884165ffe
6 changed files with 164 additions and 11 deletions
7
Dockerfile.kaesekuchen
Normal file
7
Dockerfile.kaesekuchen
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
FROM golang AS builder
|
||||
COPY . .
|
||||
RUN go build -o /main main.go
|
||||
|
||||
FROM ghcr.io/cloudbase/garm:nightly
|
||||
COPY --from=builder ./main /opt/garm/providers.d/garm-provider-edge-connect
|
||||
COPY mockprovider.sh /opt/garm/providers.d/mockprovider
|
||||
|
|
@ -5,7 +5,7 @@ import (
|
|||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
|
||||
"log"
|
||||
"net/http"
|
||||
)
|
||||
|
|
@ -48,12 +48,12 @@ func (e *EdgeConnect) NewAppInstance(ctx context.Context, input NewAppInstanceIn
|
|||
|
||||
defer resp.Body.Close()
|
||||
|
||||
fmt.Printf("Header: %v\n", request.Header)
|
||||
/*fmt.Printf("Header: %v\n", request.Header)
|
||||
bodyBytes, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Printf("Response: %v\n", string(bodyBytes))
|
||||
fmt.Printf("Response: %v\n", string(bodyBytes))*/
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
@ -83,12 +83,12 @@ func (e *EdgeConnect) NewApp(ctx context.Context, input NewAppInput) error {
|
|||
|
||||
defer resp.Body.Close()
|
||||
|
||||
fmt.Printf("Header: %v\n", request.Header)
|
||||
/*fmt.Printf("Header: %v\n", request.Header)
|
||||
bodyBytes, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Printf("Response: %v\n", string(bodyBytes))
|
||||
fmt.Printf("Response: %v\n", string(bodyBytes))*/
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
@ -379,11 +379,11 @@ func (e *EdgeConnect) DeleteApp(ctx context.Context, appkey AppKey, region strin
|
|||
}
|
||||
|
||||
defer resp.Body.Close()
|
||||
bodyBytes, err := io.ReadAll(resp.Body)
|
||||
/*bodyBytes, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Printf("Response: %v\n", string(bodyBytes))
|
||||
fmt.Printf("Response: %v\n", string(bodyBytes))*/
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
@ -427,11 +427,11 @@ func (e *EdgeConnect) DeleteAppInstance(ctx context.Context, appinstancekey AppI
|
|||
}
|
||||
|
||||
defer resp.Body.Close()
|
||||
bodyBytes, err := io.ReadAll(resp.Body)
|
||||
/*bodyBytes, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Printf("Response: %v%v\n", resp.StatusCode, string(bodyBytes))
|
||||
fmt.Printf("Response: %v%v\n", resp.StatusCode, string(bodyBytes))*/
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
49
mock.log
Normal file
49
mock.log
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
AWS_ACCESS_KEY_ID=CABTBZ2WB8LX94V6EDJK
|
||||
AWS_REQUEST_CHECKSUM_CALCULATION=when_required
|
||||
AWS_RESPONSE_CHECKSUM_VALIDATION=when_required
|
||||
AWS_SECRET_ACCESS_KEY=CUlNepW5q7nfCFQqDIY4egYjmDED4Z2KrK1TriyQ
|
||||
COLORTERM=truecolor
|
||||
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
|
||||
DISPLAY=:0
|
||||
GIT_ASKPASS=/home/chris/.vscode-server/bin/7adae6a56e34cb64d08899664b814cf620465925/extensions/git/dist/askpass.sh
|
||||
HOME=/home/chris
|
||||
HOSTTYPE=x86_64
|
||||
KUBECONFIG=kubeconfig.yaml
|
||||
LANG=C.UTF-8
|
||||
LESSCLOSE=/usr/bin/lesspipe %s %s
|
||||
LESSOPEN=| /usr/bin/lesspipe %s
|
||||
LOGNAME=chris
|
||||
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.crdownload=00;90:*.dpkg-dist=00;90:*.dpkg-new=00;90:*.dpkg-old=00;90:*.dpkg-tmp=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:*.swp=00;90:*.tmp=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:
|
||||
NAME=rdde02m1
|
||||
NVM_BIN=/home/chris/.nvm/versions/node/v20.18.1/bin
|
||||
NVM_CD_FLAGS=
|
||||
NVM_DIR=/home/chris/.nvm
|
||||
NVM_INC=/home/chris/.nvm/versions/node/v20.18.1/include/node
|
||||
OLDPWD=/home/chris/ipcei/projects
|
||||
OS_ACCESS_KEY=CABTBZ2WB8LX94V6EDJK
|
||||
OS_SECRET_KEY=CUlNepW5q7nfCFQqDIY4egYjmDED4Z2KrK1TriyQ
|
||||
PATH=/usr/local/go/bin:/home/chris/.vscode-server/bin/7adae6a56e34cb64d08899664b814cf620465925/bin/remote-cli:/usr/local/go/bin:/usr/local/go/bin:/home/chris/.nvm/versions/node/v20.18.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Python313/Scripts/:/mnt/c/Python313/:/mnt/c/Program Files/Common Files/Oracle/Java/javapath:/mnt/c/ProgramData/Oracle/Java/javapath:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/WINDOWS/System32/OpenSSH/:/mnt/c/Program Files (x86)/dotnet/:/mnt/c/Program Files/RedHat/java-11-openjdk-11.0.16-1/bin:/mnt/c/Program Files/Git/cmd:/mnt/c/Users/cihe/AppData/Local/Microsoft/WindowsApps:/mnt/c/Program Files/JetBrains/IntelliJ IDEA 2022.2.3/bin:/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2022.2.3/bin:/mnt/c/Users/cihe/AppData/Local/Programs/Python/Python310/Scripts:/mnt/c/ProgramData/chocolatey/bin:/mnt/c/Program Files/Docker/Docker/resources/bin:/mnt/c/Program Files/dotnet/:/mnt/c/Program Files/Go/bin:/mnt/c/Program Files/nodejs/:/mnt/c/Users/cihe/AppData/Local/Microsoft/WindowsApps:/mnt/c/Program Files/JetBrains/IntelliJ IDEA 2022.2.3/bin:/mnt/c/Program Files/JetBrains/IntelliJ IDEA Community Edition 2022.2.3/bin:/mnt/c/Users/cihe/tools/sonarscanner/bin:/mnt/c/Users/cihe/AppData/Local/GitHubDesktop/bin:/mnt/c/Users/cihe/go/bin:/mnt/c/Users/cihe/AppData/Local/Programs/Microsoft VS Code/bin:/mnt/c/Users/cihe/AppData/Roaming/npm:/snap/bin:/home/chris/.cargo/bin:/home/chris/go/bin:/home/chris/go/bin:/home/chris/.cargo/bin:/home/chris/go/bin
|
||||
PULSE_SERVER=unix:/mnt/wslg/PulseServer
|
||||
PWD=/home/chris/ipcei/projects/garm-provider-edge-connect
|
||||
SHELL=/bin/bash
|
||||
SHLVL=1
|
||||
TERM=xterm-256color
|
||||
TERM_PROGRAM=vscode
|
||||
TERM_PROGRAM_VERSION=1.102.1
|
||||
USER=chris
|
||||
VSCODE_GIT_ASKPASS_EXTRA_ARGS=
|
||||
VSCODE_GIT_ASKPASS_MAIN=/home/chris/.vscode-server/bin/7adae6a56e34cb64d08899664b814cf620465925/extensions/git/dist/askpass-main.js
|
||||
VSCODE_GIT_ASKPASS_NODE=/home/chris/.vscode-server/bin/7adae6a56e34cb64d08899664b814cf620465925/node
|
||||
VSCODE_GIT_IPC_HANDLE=/run/user/1000/vscode-git-e78a6d970e.sock
|
||||
VSCODE_IPC_HOOK_CLI=/run/user/1000/vscode-ipc-9f03a1c6-beb1-48e2-a965-568262339ebf.sock
|
||||
WAYLAND_DISPLAY=wayland-0
|
||||
WSL2_GUI_APPS_ENABLED=1
|
||||
WSLENV=VSCODE_WSL_EXT_LOCATION/up
|
||||
WSL_DISTRO_NAME=Ubuntu
|
||||
WSL_INTEROP=/run/WSL/1066_interop
|
||||
XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop
|
||||
XDG_RUNTIME_DIR=/run/user/1000/
|
||||
_=./mockprovider.sh
|
||||
Parameters asd asd
|
||||
stdin lala
|
||||
=======================================================================================
|
||||
13
mockprovider.sh
Executable file
13
mockprovider.sh
Executable file
|
|
@ -0,0 +1,13 @@
|
|||
#!/bin/sh
|
||||
|
||||
LOG_FILE=./mock.log
|
||||
env | sort | grep -v PASSWORD >> $LOG_FILE
|
||||
echo Parameters $@ >> $LOG_FILE
|
||||
|
||||
while read line
|
||||
do
|
||||
echo stdin "$line" >> $LOG_FILE
|
||||
done < "/dev/stdin"
|
||||
|
||||
echo ======================================================================================= >> $LOG_FILE
|
||||
|
||||
|
|
@ -325,12 +325,12 @@ func (a *edgeConnectProvider) RemoveAllInstances(ctx context.Context) error {
|
|||
|
||||
// Stop shuts down the instance.
|
||||
func (a *edgeConnectProvider) Stop(ctx context.Context, instance string, force bool) error {
|
||||
return nil
|
||||
panic(fmt.Sprintf("Stop() not implemented, called with instance: %s, force: %t", instance, force))
|
||||
}
|
||||
|
||||
// Start boots up an instance.
|
||||
func (a *edgeConnectProvider) Start(ctx context.Context, instance string) error {
|
||||
return nil
|
||||
panic(fmt.Sprintf("Start() not implemented, called with instance: %s", instance))
|
||||
}
|
||||
|
||||
// GetVersion returns the version of the provider.
|
||||
|
|
|
|||
84
test.sh
Executable file
84
test.sh
Executable file
|
|
@ -0,0 +1,84 @@
|
|||
#!/bin/bash
|
||||
|
||||
export GARM_COMMAND="CreateInstance"
|
||||
export GARM_CONTROLLER_ID="50cb196d"
|
||||
export GARM_INTERFACE_VERSION="v0.1.0"
|
||||
export GARM_POOL_ID="50fa68a5"
|
||||
export GARM_PROVIDER_CONFIG_FILE="/home/chris/ipcei/projects/garm-provider-edge-connect/config/config.toml"
|
||||
|
||||
cat <<EOF | go run main.go
|
||||
{
|
||||
"name": "garm-ny9HeeQYw2rl",
|
||||
"tools": [
|
||||
{
|
||||
"os": "osx",
|
||||
"architecture": "x64",
|
||||
"download_url": "https://github.com/actions/runner/releases/download/v2.299.1/actions-runner-osx-x64-2.299.1.tar.gz",
|
||||
"filename": "actions-runner-osx-x64-2.299.1.tar.gz",
|
||||
"sha256_checksum": "b0128120f2bc48e5f24df513d77d1457ae845a692f60acf3feba63b8d01a8fdc"
|
||||
},
|
||||
{
|
||||
"os": "linux",
|
||||
"architecture": "x64",
|
||||
"download_url": "https://github.com/actions/runner/releases/download/v2.299.1/actions-runner-linux-x64-2.299.1.tar.gz",
|
||||
"filename": "actions-runner-linux-x64-2.299.1.tar.gz",
|
||||
"sha256_checksum": "147c14700c6cb997421b9a239c012197f11ea9854cd901ee88ead6fe73a72c74"
|
||||
},
|
||||
{
|
||||
"os": "win",
|
||||
"architecture": "x64",
|
||||
"download_url": "https://github.com/actions/runner/releases/download/v2.299.1/actions-runner-win-x64-2.299.1.zip",
|
||||
"filename": "actions-runner-win-x64-2.299.1.zip",
|
||||
"sha256_checksum": "f7940b16451d6352c38066005f3ee6688b53971fcc20e4726c7907b32bfdf539"
|
||||
},
|
||||
{
|
||||
"os": "linux",
|
||||
"architecture": "arm",
|
||||
"download_url": "https://github.com/actions/runner/releases/download/v2.299.1/actions-runner-linux-arm-2.299.1.tar.gz",
|
||||
"filename": "actions-runner-linux-arm-2.299.1.tar.gz",
|
||||
"sha256_checksum": "a4d66a766ff3b9e07e3e068a1d88b04e51c27c9b94ae961717e0a5f9ada998e6"
|
||||
},
|
||||
{
|
||||
"os": "linux",
|
||||
"architecture": "arm64",
|
||||
"download_url": "https://github.com/actions/runner/releases/download/v2.299.1/actions-runner-linux-arm64-2.299.1.tar.gz",
|
||||
"filename": "actions-runner-linux-arm64-2.299.1.tar.gz",
|
||||
"sha256_checksum": "debe1cc9656963000a4fbdbb004f475ace5b84360ace2f7a191c1ccca6a16c00"
|
||||
},
|
||||
{
|
||||
"os": "osx",
|
||||
"architecture": "arm64",
|
||||
"download_url": "https://github.com/actions/runner/releases/download/v2.299.1/actions-runner-osx-arm64-2.299.1.tar.gz",
|
||||
"filename": "actions-runner-osx-arm64-2.299.1.tar.gz",
|
||||
"sha256_checksum": "f73849b9a78459d2e08b9d3d2f60464a55920de120e228b0645b01abe68d9072"
|
||||
},
|
||||
{
|
||||
"os": "win",
|
||||
"architecture": "arm64",
|
||||
"download_url": "https://github.com/actions/runner/releases/download/v2.299.1/actions-runner-win-arm64-2.299.1.zip",
|
||||
"filename": "actions-runner-win-arm64-2.299.1.zip",
|
||||
"sha256_checksum": "d1a9d8209f03589c8dc05ee17ae8d194756377773a4010683348cdd6eefa2da7"
|
||||
}
|
||||
],
|
||||
"repo_url": "https://github.com/gabriel-samfira/scripts",
|
||||
"callback-url": "https://garm.example.com/api/v1/callbacks",
|
||||
"metadata-url": "https://garm.example.com/api/v1/metadata",
|
||||
"instance-token": "super secret JWT token",
|
||||
"extra_specs": {
|
||||
"my_custom_config": "some_value"
|
||||
},
|
||||
"ca-cert-bundle": null,
|
||||
"github-runner-group": "my_group",
|
||||
"os_type": "linux",
|
||||
"arch": "amd64",
|
||||
"flavor": "m1.small",
|
||||
"image": "8ed8a690-69b6-49eb-982f-dcb466895e2d",
|
||||
"labels": [
|
||||
"ubuntu",
|
||||
"openstack",
|
||||
"runner-controller-id:f9286791-1589-4f39-a106-5b68c2a18af4",
|
||||
"runner-pool-id:9dcf590a-1192-4a9c-b3e4-e0902974c2c0"
|
||||
],
|
||||
"pool_id": "9dcf590a"
|
||||
}
|
||||
EOF
|
||||
Loading…
Add table
Add a link
Reference in a new issue