Skip to content

release-v0.3.8

Latest
Compare
Choose a tag to compare
@mingqing mingqing released this 15 Jan 15:20
1270ce7

[0.3.8] - 2025-01-15

Added

降低编译后二进制大小

go build -ldflags="-s -w"

为降低生成的二进制大小,默认移除调试符号表和调试信息。

基于 cloudevents 添加审计事件

启用功能后在,客户端请求接口,服务端自动推送相应请求、响应事件以便审计。

{
    "service_name": "netdev.v1.oneops.api.grpc-kit.com",
    "level": "request_response",
    "audit_id": "ee03fc569f7ebf8c88ef026457db5425",
    "stage": "response_complete",
    "grpc_method": "ListSwitchAdminUsers",
    "grpc_service": "default.api.oneops.netdev.v1.OneopsNetdev",
    "user": {
        "uid": "user1",
        "username": "user1",
        "groups": [
            "kpy-seat"
        ],
        "extra": {}
    },
    "source_ips": [
        "127.0.0.1"
    ],
    "user_agent": "PostmanRuntime/7.43.0",
    "response_status": {
        "status": "success",
        "reason": "OK",
        "code": 200
    },
    "request_object": "{}",
    "response_object": "{}",
    "request_received_timestamp": "2024-12-24T15:33:47.814063+08:00",
    "stage_timestamp": "2024-12-24T15:33:47.844292+08:00"
}

支持缓存服务配置

# 缓存服务配置
cachebox:
  enable: true
  driver: memory # memory, redis
  memory:
    max_entry: 60
  #redis:
    #endpoints:

添加 docs 目录

放置项目相关文档与说明。

ent 添加 mixin 示例固定字段

func (Demo) Mixin() []ent.Mixin {
	return []ent.Mixin{
		mixin.Time{},
	}
}

这样初始化数据库表时,自动会添加 "create_time" 与 "update_time" 字段。

添加工作流的支持

配置

# 流程编排配置
automations:
  enable: true
  # kubernetes-1.26.11/staging/src/k8s.io/client-go/tools/clientcmd/client_config.go
  kubernetes:
    # 未配置则为 inClusterConfig 使用集群内 sa 授权
    config_path: /Users/mingqing/.kube/config
    #rest_config:
    #  host: fake.dev.kpy.cloud:6443
    #  bearer_token: xxx
    #  tls_client_config:
    #    insecure: true

handler/private.go

	if m.baseCfg.Automations.Enable {
		fcc, err := m.baseCfg.GetFlowClientConfig()
		if err != nil {
			return idpOpts, err
		}

		idpOpts = append(idpOpts, modeler.WithWorkflow(m.logger, fcc))
	}

改造

modeler/flow/

添加常见 git lfs 文件

.gitattributes

*.tar.gz filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text

Fixed

使用 podman 构建镜像错误

在 Makefile 中使用错误,

Cannot connect to Podman. Please verify your connection to the Linux system using podman system connection list, or try podman machine init and podman machine start to manage a new Linux VM
Error: unable to connect to Podman socket: Get "http://d/v4.4.0/libpod/_ping": dial unix ///var/folders/m5/4s1cpkvd3xsbt7lr9ncwl1xw0000gn/T/podman-run--1/podman/podman.sock: connect: no such file or directory

但直接在 shell 中使用 podman 又是正常的。

因为在系统中使用了 alias docker="podman" 设置别名,可能引起变量无法集成,改进 scripts/docker.sh 脚本,支持自动判断 dockerpodman 容器运行时。

ent 交叉编译问题

>> precheck environment
>> generation release version
>> generation code from proto files
>> generation database schema
fork/exec /var/folders/m5/4s1cpkvd3xsbt7lr9ncwl1xw0000gn/T/go-build462434904/b001/exe/entc: exec format error
modeler/ent/generate.go:3: running "go": exit status 1
make: *** [generate] Error 1

因为 "go:generate" 也是继承 "GOOS"、"GOARCH" 变量,如果跟当前主机不匹配,则后续的 "go run" 是无法运行的。

通过变量 "GOOS=${GOHOSTOS} GOARCH=${GOHOSTARCH} go generate ./modeler/ent/" 解决。