Skip to content

SneaksAndData/nexus-sdk-go

Repository files navigation

coverage

Introduction

Nexus SDK Go is a Golang development kit for Nexus client applications. Base client code is generated using ogen from OpenAPI v3 specification of the Nexus API.

SDK is tested against a Nexus stack deployed to a kind cluster (WIP).

Local testing with kind and docker

  1. Create a controller cluster:
kind create cluster --name nexus-controller
  1. Create a shard cluster:
kind create cluster --name nexus-shard-0
  1. Export kubeconfigs:
kind export kubeconfig --name nexus-controller --kubeconfig ./test-resources/kubecfg/controller
kind export kubeconfig --name nexus-shard-0 --kubeconfig ./test-resources/kubecfg/shards/kind-nexus-shard-0.kubeconfig

# update permissions
chmod 777 ./test-resources/kubecfg/controller
chmod 777 ./test-resources/kubecfg/shards/kind-nexus-shard-0.kubeconfig
  1. Install CRDs into both clusters:
cd .helm
helm dependency build .
helm --kube-context kind-nexus-controller install nexus-test-stack . --create-namespace --namespace nexus
helm --kube-context kind-nexus-shard-0 install nexus-test-stack . --create-namespace --namespace nexus
  1. Launch docker-compose stack
docker compose up --quiet-pull -d

Now, try to access the scheduler API:

> curl -vvv http://localhost:8080/algorithm/v1/results/tags/aaa

and check for a response like below:

* Host localhost:8080 was resolved.
* IPv6: ::1
* IPv4: 127.0.0.1
*   Trying [::1]:8080...
* Connected to localhost (::1) port 8080
> GET /algorithm/v1/results/tags/aaa HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/8.7.1
> Accept: */*
> 
* Request completely sent off
< HTTP/1.1 200 OK
< Content-Type: application/json; charset=utf-8
< Date: Mon, 04 Aug 2025 08:23:44 GMT
< Content-Length: 2

About

Go Development Libraries for Nexus

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published