chore: add argocd manifest files (#137)
* chore: add argocd manifests * fix the version issues
This commit is contained in:
parent
0809f352b8
commit
85f70b71d9
|
@ -1,2 +1,5 @@
|
|||
console/atest-ui/node_modules
|
||||
console/atest-ui/dist
|
||||
.git/
|
||||
bin/
|
||||
dist/
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
FROM golang:1.18 AS builder
|
||||
|
||||
ARG VERSION
|
||||
ARG GOPROXY
|
||||
WORKDIR /workspace
|
||||
COPY cmd/ cmd/
|
||||
|
@ -17,7 +18,7 @@ COPY README.md README.md
|
|||
COPY LICENSE LICENSE
|
||||
|
||||
RUN GOPROXY=${GOPROXY} go mod download
|
||||
RUN GOPROXY=${GOPROXY} CGO_ENABLED=0 go build -ldflags "-w -s" -o atest .
|
||||
RUN GOPROXY=${GOPROXY} CGO_ENABLED=0 go build -ldflags "-w -s -X github.com/linuxsuren/api-testing/pkg/version.version=${VERSION}" -o atest .
|
||||
RUN GOPROXY=${GOPROXY} CGO_ENABLED=0 go build -ldflags "-w -s" -o atest-collector extensions/collector/main.go
|
||||
RUN GOPROXY=${GOPROXY} CGO_ENABLED=0 go build -ldflags "-w -s" -o atest-store-orm extensions/store-orm/main.go
|
||||
|
||||
|
@ -25,7 +26,7 @@ FROM node:20-alpine3.17 AS ui
|
|||
|
||||
WORKDIR /workspace
|
||||
COPY --from=builder /workspace/atest-ui .
|
||||
RUN npm install --ignore-scripts
|
||||
RUN npm install --ignore-scripts --registry=https://registry.npmmirror.com
|
||||
RUN npm run build-only
|
||||
|
||||
FROM ubuntu:23.04
|
||||
|
|
6
Makefile
6
Makefile
|
@ -9,14 +9,16 @@ build-embed-ui:
|
|||
cp console/atest-ui/dist/index.html cmd/data/index.html
|
||||
cp console/atest-ui/dist/assets/*.js cmd/data/index.js
|
||||
cp console/atest-ui/dist/assets/*.css cmd/data/index.css
|
||||
go build -ldflags "-w -s -X github.com/linuxsuren/api-testing/pkg/version.version=$(git rev-parse --short HEAD)" -o bin/atest main.go
|
||||
go build -ldflags "-w -s -X github.com/linuxsuren/api-testing/pkg/version.version=$(shell git rev-parse --short HEAD)" -o bin/atest main.go
|
||||
echo -n '' > cmd/data/index.html
|
||||
echo -n '' > cmd/data/index.js
|
||||
echo -n '' > cmd/data/index.css
|
||||
goreleaser:
|
||||
goreleaser build --rm-dist --snapshot
|
||||
build-image:
|
||||
${IMG_TOOL} build -t ghcr.io/linuxsuren/api-testing:master . --build-arg GOPROXY=https://goproxy.cn,direct
|
||||
${IMG_TOOL} build -t ghcr.io/linuxsuren/api-testing:master . \
|
||||
--build-arg GOPROXY=https://goproxy.cn,direct \
|
||||
--build-arg VERSION=$(shell git describe --abbrev=0 --tags)-$(shell git rev-parse --short HEAD)
|
||||
run-image:
|
||||
docker run -p 7070:7070 -p 8080:8080 ghcr.io/linuxsuren/api-testing:master
|
||||
run-server:
|
||||
|
|
|
@ -66,9 +66,9 @@ consume: 1m2.153686448s
|
|||
|
||||
## Use in Docker
|
||||
|
||||
Use `atest` as server mode in Docker, then you could visit the UI from `8080` and the gRPC endpoint from `7070`:
|
||||
Use `atest` as server mode in Docker, then you could visit the UI from `8080`:
|
||||
```
|
||||
docker run -p 7070:7070 -p 8080:8080 ghcr.io/linuxsuren/api-testing
|
||||
docker run --pull always -p 8080:8080 ghcr.io/linuxsuren/api-testing:master
|
||||
```
|
||||
|
||||
Use `atest-collector` in Docker:
|
||||
|
|
|
@ -116,6 +116,9 @@ func (o *serverOption) runE(cmd *cobra.Command, args []string) (err error) {
|
|||
if err == nil {
|
||||
mux.HandlePath("GET", "/", frontEndHandlerWithLocation(o.consolePath))
|
||||
mux.HandlePath("GET", "/assets/{asset}", frontEndHandlerWithLocation(o.consolePath))
|
||||
mux.HandlePath("GET", "/healthz", func(w http.ResponseWriter, r *http.Request, pathParams map[string]string) {
|
||||
w.Write([]byte("ok"))
|
||||
})
|
||||
o.httpServer.WithHandler(mux)
|
||||
err = o.httpServer.Serve(httplis)
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@ There are multiple storage backend supported: See the status from the list:
|
|||
Local storage is the built-in solution. You can run it with the following command:
|
||||
|
||||
```shell
|
||||
podman run -p 8080:8080 ghcr.io/linuxsuren/api-testing:master
|
||||
podman run --pull always -p 8080:8080 ghcr.io/linuxsuren/api-testing:master
|
||||
|
||||
# The default local storage directory is: /var/www/sample
|
||||
# You can find the test case YAML files in it.
|
||||
|
@ -29,6 +29,11 @@ or, you can run the CLI in terminal like this:
|
|||
atest server --local-storage 'sample/*.yaml' --console-path console/atest-ui/dist
|
||||
```
|
||||
|
||||
using the host network mode if you want to connect to your local environment:
|
||||
```shell
|
||||
podman run --pull always --network host ghcr.io/linuxsuren/api-testing:master
|
||||
```
|
||||
|
||||
### ORM DataBase Storage
|
||||
Start a database with the following command if you don't have a database already. You can install [tiup](https://tiup.io/) via `hd i tiup`.
|
||||
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: api-testing
|
||||
namespace: argocd
|
||||
spec:
|
||||
destination:
|
||||
namespace: default
|
||||
server: https://kubernetes.default.svc
|
||||
project: default
|
||||
source:
|
||||
path: sample/kubernetes
|
||||
repoURL: https://github.com/LinuxSuRen/api-testing
|
||||
targetRevision: master
|
||||
# see also https://argo-cd.readthedocs.io/en/stable/user-guide/kustomize/
|
||||
kustomize:
|
||||
images:
|
||||
- ghcr.io/linuxsuren/api-testing=ghcr.io/linuxsuren/api-testing:master
|
||||
syncPolicy:
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- RespectIgnoreDifferences=true
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
|
@ -0,0 +1,4 @@
|
|||
resources:
|
||||
- manifest.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
|
@ -11,7 +11,7 @@ spec:
|
|||
strategy:
|
||||
rollingUpdate:
|
||||
maxSurge: 1
|
||||
maxUnavailable: 1
|
||||
maxUnavailable: 0
|
||||
selector:
|
||||
matchLabels:
|
||||
app: api-testing
|
||||
|
@ -33,12 +33,25 @@ spec:
|
|||
containers:
|
||||
- image: ghcr.io/linuxsuren/api-testing
|
||||
name: server
|
||||
imagePullPolicy: Always
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: 8080
|
||||
initialDelaySeconds: 1
|
||||
periodSeconds: 5
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: 8080
|
||||
initialDelaySeconds: 1
|
||||
periodSeconds: 5
|
||||
resources:
|
||||
limits:
|
||||
cpu: "1"
|
||||
memory: 1Gi
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: "100m"
|
||||
cpu: 100m
|
||||
memory: 100m
|
||||
---
|
||||
apiVersion: v1
|
||||
|
@ -47,10 +60,14 @@ metadata:
|
|||
name: api-testing
|
||||
spec:
|
||||
ports:
|
||||
- name: server
|
||||
- name: grpc
|
||||
port: 7070
|
||||
protocol: TCP
|
||||
targetPort: 7070
|
||||
- name: web
|
||||
port: 8080
|
||||
protocol: TCP
|
||||
targetPort: 8080
|
||||
selector:
|
||||
app: api-testing
|
||||
sessionAffinity: None
|
||||
|
|
Loading…
Reference in New Issue