-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(proxy): Add microservice to proxy ollama requests
Signed-off-by: Rodney Osodo <[email protected]>
- Loading branch information
1 parent
f559224
commit 159ceba
Showing
15 changed files
with
957 additions
and
47 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
name: Create and publish Vault Proxy Docker image | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
tags: | ||
- "v*" | ||
paths: | ||
- ".github/workflows/cd.yaml" | ||
- "proxy/**" | ||
|
||
workflow_dispatch: | ||
|
||
env: | ||
REGISTRY: ghcr.io | ||
IMAGE_NAME: ${{ github.repository }} | ||
|
||
jobs: | ||
build-and-push-image: | ||
runs-on: ubuntu-latest | ||
|
||
permissions: | ||
contents: read | ||
packages: write | ||
|
||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Fetch tags for the build | ||
run: | | ||
git fetch --prune --unshallow --tags | ||
- name: Set up Docker Build | ||
uses: docker/setup-buildx-action@v3 | ||
|
||
- name: Log in to the Container registry | ||
uses: docker/login-action@v3 | ||
with: | ||
registry: ${{ env.REGISTRY }} | ||
username: ${{ github.actor }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Build and push Docker image | ||
run: | | ||
cd proxy | ||
make latest |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
name: Continuous Integration | ||
|
||
on: | ||
pull_request: | ||
branches: | ||
- main | ||
paths: | ||
- ".github/workflows/cd.yaml" | ||
- "proxy/**" | ||
|
||
push: | ||
branches: | ||
- main | ||
paths: | ||
- ".github/workflows/cd.yaml" | ||
- "proxy/**" | ||
|
||
workflow_dispatch: | ||
|
||
jobs: | ||
lint-and-build: # Linting and building are combined to save time for setting up Go | ||
name: Lint and Build | ||
runs-on: ubuntu-latest | ||
defaults: | ||
run: | ||
working-directory: ./proxy | ||
|
||
steps: | ||
- name: Checkout Code | ||
uses: actions/checkout@v4 | ||
|
||
- name: Setup Go | ||
uses: actions/setup-go@v5 | ||
with: | ||
go-version: 1.23.x | ||
cache-dependency-path: "go.sum" | ||
|
||
- name: golangci-lint | ||
uses: golangci/golangci-lint-action@v6 | ||
with: | ||
version: v1.60.1 | ||
|
||
- name: Build proxy | ||
run: | | ||
make all |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,3 +8,6 @@ cloud-init/meta-data | |
|
||
# Traefik files | ||
acme.json | ||
|
||
# Proxy Build | ||
proxy/build |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
services: | ||
vault-proxy: | ||
container_name: vault-proxy | ||
image: ghcr.io/ultravioletrs/vault/proxy:latest | ||
restart: on-failure | ||
networks: | ||
- vault-network | ||
depends_on: | ||
- auth | ||
environment: | ||
UV_VAULT_PROXY_LOG_LEVEL: ${UV_VAULT_PROXY_LOG_LEVEL} | ||
UV_VAULT_PROXY_HOST: ${UV_VAULT_PROXY_HOST} | ||
UV_VAULT_PROXY_PORT: ${UV_VAULT_PROXY_PORT} | ||
UV_VAULT_PROXY_SERVER_CERT: ${UV_VAULT_PROXY_SERVER_CERT} | ||
UV_VAULT_PROXY_SERVER_KEY: ${UV_VAULT_PROXY_SERVER_KEY} | ||
MG_AUTH_GRPC_URL: ${MG_AUTH_GRPC_URL} | ||
MG_AUTH_GRPC_TIMEOUT: ${MG_AUTH_GRPC_TIMEOUT} | ||
MG_AUTH_GRPC_CLIENT_CERT: ${MG_AUTH_GRPC_CLIENT_CERT:+/auth-grpc-client.crt} | ||
MG_AUTH_GRPC_CLIENT_KEY: ${MG_AUTH_GRPC_CLIENT_KEY:+/auth-grpc-client.key} | ||
MG_AUTH_GRPC_SERVER_CA_CERTS: ${MG_AUTH_GRPC_SERVER_CA_CERTS:+/auth-grpc-server-ca.crt} | ||
MG_SEND_TELEMETRY: ${MG_SEND_TELEMETRY} | ||
UV_VAULT_PROXY_TARGET_URL: ${UV_VAULT_PROXY_TARGET_URL} | ||
volumes: | ||
# Auth gRPC client certificates | ||
- type: bind | ||
source: ${MG_AUTH_GRPC_CLIENT_CERT:-ssl/certs/dummy/client_cert} | ||
target: /auth-grpc-client${MG_AUTH_GRPC_CLIENT_CERT:+.crt} | ||
bind: | ||
create_host_path: true | ||
- type: bind | ||
source: ${MG_AUTH_GRPC_CLIENT_KEY:-ssl/certs/dummy/client_key} | ||
target: /auth-grpc-client${MG_AUTH_GRPC_CLIENT_KEY:+.key} | ||
bind: | ||
create_host_path: true | ||
- type: bind | ||
source: ${MG_AUTH_GRPC_SERVER_CA_CERTS:-ssl/certs/dummy/server_ca} | ||
target: /auth-grpc-server-ca${MG_AUTH_GRPC_SERVER_CA_CERTS:+.crt} | ||
bind: | ||
create_host_path: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
VAULT_DOCKER_IMAGE_NAME ?= ghcr.io/ultravioletrs/vault/proxy | ||
CGO_ENABLED ?= 0 | ||
GOOS ?= linux | ||
GOARCH ?= amd64 | ||
BUILD_DIR = build | ||
VERSION ?= $(shell git describe --abbrev=0 --tags 2>/dev/null || echo 'v0.0.0') | ||
|
||
define compile_service | ||
CGO_ENABLED=$(CGO_ENABLED) GOOS=$(GOOS) GOARCH=$(GOARCH) \ | ||
go build -ldflags "-s -w" -o ${BUILD_DIR}/ | ||
endef | ||
|
||
define make_docker | ||
docker build \ | ||
--no-cache \ | ||
--build-arg GOOS=$(GOOS) \ | ||
--build-arg GOARCH=$(GOARCH) \ | ||
--tag=$(VAULT_DOCKER_IMAGE_NAME):$(VERSION) \ | ||
--tag=$(VAULT_DOCKER_IMAGE_NAME):latest \ | ||
-f docker/Dockerfile . | ||
endef | ||
|
||
define make_docker_dev | ||
docker build \ | ||
--no-cache \ | ||
--tag=$(VAULT_DOCKER_IMAGE_NAME):$(VERSION) \ | ||
--tag=$(VAULT_DOCKER_IMAGE_NAME):latest \ | ||
-f docker/Dockerfile.dev ./build | ||
endef | ||
|
||
define docker_push | ||
docker push $(VAULT_DOCKER_IMAGE_NAME):$(VERSION) | ||
docker push $(VAULT_DOCKER_IMAGE_NAME):latest | ||
endef | ||
|
||
.PHONY: build | ||
build: | ||
$(call compile_service) | ||
|
||
.PHONY: docker | ||
docker: | ||
$(call make_docker) | ||
|
||
.PHONY: docker-dev | ||
docker-dev: | ||
$(call make_docker_dev) | ||
|
||
all: build docker | ||
|
||
clean: | ||
rm -rf build | ||
|
||
latest: docker | ||
$(call docker_push) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
FROM golang:1.23-alpine AS builder | ||
ARG SVC | ||
ARG GOOS | ||
ARG GOARCH | ||
|
||
WORKDIR /go/src/github.com/ultraviolet/vault-proxy | ||
COPY . . | ||
RUN apk update \ | ||
&& apk add make upx\ | ||
&& make build \ | ||
&& upx build/vault-proxy \ | ||
&& mv build/vault-proxy /exe | ||
|
||
FROM scratch | ||
COPY --from=builder /exe / | ||
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt | ||
ENTRYPOINT ["/exe"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
FROM scratch | ||
COPY vault-proxy /exe | ||
COPY --from=alpine:latest /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt | ||
ENTRYPOINT ["/exe"] |
Oops, something went wrong.