Compare commits

...

12 Commits

Author SHA1 Message Date
jagger 97e04f7e68 fix 2024-11-08 15:35:25 +08:00
devad cbcd632f4d Add Docker build multi-platform support 2024-10-13 10:47:11 +08:00
qiwang e6c8a1e9e0 Merge pull request 'finish vm create task' (#22) from qiwang/pcm-openstack:master into master 2024-07-03 11:22:19 +08:00
qiwang 8dc79eb334 Merge pull request 'push openstack code' (#21) from qiwang/pcm-openstack:master into master 2024-07-02 16:35:10 +08:00
qiwang e7edabad42 Merge pull request 'Add the survival_time field' (#20) from qiwang/pcm-openstack:master into master 2024-04-03 11:33:38 +08:00
qiwang 46c7d05954 Bug of modifying IP to be empty 2024-04-02 15:48:43 +08:00
qiwang 2f1425735f Merge pull request 'modify interface' (#18) from qiwang/pcm-openstack:master into master 2024-04-01 10:24:04 +08:00
qiwang cbdd8f5b22 Merge pull request 'modify field to create virtual machine' (#17) from qiwang/pcm-openstack:master into master 2024-03-28 10:07:39 +08:00
qiwang 008a85e3c3 Merge pull request 'modify field to create virtual machine' (#16) from qiwang/pcm-openstack:master into master 2024-03-27 15:21:42 +08:00
qiwang 65aa0f7782 Merge pull request 'Add virtual machine interfaces' (#15) from qiwang/pcm-openstack:master into master 2024-03-27 10:43:10 +08:00
qiwang 968e44dd57 Merge pull request 'modify parameters' (#14) from qiwang/pcm-openstack:master into master 2024-03-22 15:47:37 +08:00
qiwang 2f6c767106 Merge pull request 'Modify configuration' (#13) from qiwang/pcm-openstack:master into master 2024-03-12 16:46:10 +08:00
3 changed files with 104 additions and 18 deletions

63
.github/workflows/docker-publish.yml vendored Normal file
View File

@ -0,0 +1,63 @@
name: Docker
on:
push:
branches: [ "master" ]
tags: [ 'v*.*.*' ]
pull_request:
branches: [ "master" ]
workflow_dispatch: # 允许手动触发
env:
REGISTRY: registry.cn-hangzhou.aliyuncs.com # 修改为你的阿里云镜像仓库地址
IMAGE_NAME: jcce/pcm-openstack # 修改为你的阿里云镜像仓库名称
IMAGE_TAG: latest
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ secrets.ALIYUN_USERNAME }}
password: ${{ secrets.ALIYUN_PASSWORD }}
- name: Get commit ID and build time
id: get_tags
run: |
echo "::set-output name=build_time::$(date +'%Y%m%d%H%M%S')"
- name: Build and push multi-arch image
run: |
docker buildx build \
--platform linux/amd64,linux/arm64 \
-t ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} \
-t ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.get_tags.outputs.build_time }} \
--push .
- name: Set up Kubernetes CLI
uses: azure/setup-kubectl@v1
- name: Configure kubeconfig
run: |
mkdir -p ~/.kube
echo "${{ secrets.KUBECONFIG }}" > ~/.kube/config
- name: Restart Deployment
run: kubectl rollout restart deployment ${{ secrets.SSH_DEPLOYMENT }}

26
.github/workflows/sync.yml vendored Normal file
View File

@ -0,0 +1,26 @@
name: Sync Mirror Repository
on:
schedule:
- cron: '0 */8 * * *' # 每小时同步一次
workflow_dispatch: # 允许手动触发
jobs:
mirror:
runs-on: ubuntu-latest
timeout-minutes: 10 # 设置作业的超时时间为10分钟
steps:
- name: Checkout target repository
uses: actions/checkout@v2
with:
fetch-depth: 1 # 获取完整的提交历史
- name: Mirror source repository
uses: wearerequired/git-mirror-action@v1
with:
source-repo: "https://gitlink.org.cn/JointCloud/pcm-openstack.git" # 源仓库的URL
destination-repo: "git@github.com:${{ github.repository }}.git" # 目标仓库的URL
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}

View File

@ -1,32 +1,29 @@
FROM golang:1.20.2-alpine3.17 AS builder
FROM --platform=$BUILDPLATFORM golang:1.22.4-alpine3.20 AS builder
WORKDIR /app
LABEL stage=gobuilder
ENV CGO_ENABLED 0
ENV GOARCH amd64
ENV GOPROXY https://goproxy.cn,direct
COPY . .
COPY etc/ /app/
RUN go mod download && go build -o pcm-openstack /app/pcmopenstack.go
FROM alpine:3.16.2
ENV GO111MODULE=on GOPROXY=https://goproxy.cn,direct
RUN go mod download
ARG TARGETOS
ARG TARGETARCH
# 使用 GOOS 和 GOARCH 环境变量来构建不同架构的二进制文件
RUN CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -ldflags="-w -s" -o pcm-openstack
FROM --platform=$TARGETPLATFORM alpine:latest
WORKDIR /app
#修改alpine源为上海交通大学
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.sjtug.sjtu.edu.cn/g' /etc/apk/repositories && \
apk update && \
apk upgrade && \
apk add --no-cache ca-certificates && update-ca-certificates && \
#修改alpine源为上海交通大学
RUN apk add --no-cache ca-certificates && update-ca-certificates && \
apk add --update tzdata && \
rm -rf /var/cache/apk/*
COPY --from=builder /app/pcm-openstack .
COPY etc/pcmopenstack.yaml .
COPY --from=builder /app/etc/pcmopenstack.yaml .
ENV TZ=Asia/Shanghai
EXPOSE 2003
EXPOSE 2010
ENTRYPOINT ./pcm-openstack -f pcmopenstack.yaml
ENTRYPOINT ./pcm-openstack --f pcmopenstack.yaml