k8s integration

This commit is contained in:
plm 2025-01-15 16:25:02 +01:00
parent f3e316c68f
commit 8ccf703e04
3 changed files with 63 additions and 10 deletions

View File

@ -1,21 +1,43 @@
FROM golang:alpine as builder
FROM golang:alpine AS deps
WORKDIR /app
COPY go.mod go.sum ./
RUN sed -i '/replace/d' go.mod
RUN go mod download
COPY . .
#----------------------------------------------------------------------------------------------
FROM golang:alpine AS builder
WORKDIR /app
RUN apk add git
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" .
RUN go install github.com/beego/bee/v2@latest
RUN ls /app
WORKDIR /oc-aggregator
FROM scratch
COPY --from=deps /go/pkg /go/pkg
COPY --from=deps /app/go.mod /app/go.sum ./
RUN export CGO_ENABLED=0 && \
export GOOS=linux && \
export GOARCH=amd64 && \
export BUILD_FLAGS="-ldflags='-w -s'"
COPY . .
RUN sed -i '/replace/d' go.mod
RUN bee pack
RUN mkdir -p /app/extracted && tar -zxvf oc-aggregator.tar.gz -C /app/extracted
#----------------------------------------------------------------------------------------------
FROM golang:alpine
WORKDIR /app
COPY --from=builder /app/oc-discovery /usr/bin/
COPY docker_aggregator.json /etc/oc/aggregator.json
COPY --from=builder /app/extracted/oc-aggregator /usr/bin/
COPY --from=builder /app/extracted/aggregator.json /etc/oc/aggregator.json
EXPOSE 8080

24
Makefile Normal file
View File

@ -0,0 +1,24 @@
.DEFAULT_GOAL := all
build: clean
bee pack
run:
./oc-aggregator
clean:
rm -rf oc-aggregator
docker:
DOCKER_BUILDKIT=1 docker build -t oc/oc-aggregator:0.0.1 -f Dockerfile .
docker tag oc/oc-aggregator:0.0.1 oc/oc-aggregator:latest
publish-kind:
kind load docker-image oc/oc-aggregator:0.0.1 --name opencloud
publish-registry:
@echo "TODO"
all: docker publish-kind publish-registry
.PHONY: build run clean docker publish-kind publish-registry

View File

@ -6,6 +6,7 @@ import (
oclib "cloud.o-forge.io/core/oc-lib"
beego "github.com/beego/beego/v2/server/web"
"github.com/beego/beego/v2/server/web/filter/cors"
)
const appname = "oc-aggregator"
@ -36,7 +37,13 @@ func main() {
beego.BConfig.Listen.HTTPPort = o.GetIntDefault("port", 8080)
beego.BConfig.WebConfig.DirectoryIndex = true
beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
beego.InsertFilter("*", beego.BeforeRouter, cors.Allow(&cors.Options{
AllowAllOrigins: true,
AllowMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
AllowHeaders: []string{"Origin", "Authorization", "Content-Type"},
ExposeHeaders: []string{"Content-Length", "Content-Type"},
AllowCredentials: true,
}))
beego.Run()
}