
domnikl/schema-registry-gitops -> CI/CD -> Schema Registry
Usage: schema-registry-gitops [-hvV] [--properties=<propertiesFilePath>] [-r=<baseUrl>] [COMMAND] 通过基础设施即代码管理模式注册表 -h, --help 显示帮助信息并退出 --properties=<propertiesFilePath> 客户端配置的Java Properties文件(可选) -r, --registry=<baseUrl> 模式注册表端点,覆盖properties中的'schema.registry.url',可指定逗号分隔的多个URL -v, --verbose 启用详细日志 -V, --version 打印版本信息并退出 命令: apply 将状态应用到指定的模式注册表 dump 打印当前状态 plan 验证并计划模式变更,查看所有待执行变更
查看特定命令帮助:schema-registry-gitops <命令> -h
通过Docker Hub获取镜像,示例:
sh# 计划变更(查看待应用内容) docker run -v "$(pwd)/examples":/data domnikl/schema-registry-gitops plan --properties /data/client.properties /data/base.yml # 应用变更 docker run -v "$(pwd)/examples":/data domnikl/schema-registry-gitops apply --registry [***] /data/base.yml # 导出当前状态 docker run -v "$(pwd)/output":/data domnikl/schema-registry-gitops dump --registry [***] > /data/current_state.yml
建议使用标签版本(如:v1.0.0)确保稳定性。
通过YAML定义期望状态,支持多文件合并(后定义主题覆盖同名先定义主题)。示例:
yaml# 全局兼容性级别(可选) compatibility: FULL_TRANSITIVE subjects: # 引用外部文件的主题 - name: my-new-subject-referencing-a-schema-file compatibility: BACKWARD # 主题级兼容性(可选,覆盖全局) file: my-actual-schema.avsc # 路径相对于当前YAML type: AVRO # 模式类型(默认AVRO,≥5.5支持PROTOBUF/JSON) references: # 模式引用(可选) - name: dev.domnikl.schema-registry-gitops.User # 引用名称(含命名空间) subject: User-value # 被引用模式的主题名 version: 1 # 被引用模式版本 # 内联模式的主题(Protobuf示例) - name: my-new-inline-schema-subject schema: 'syntax = "proto3"; package com.acme; message OtherRecord { int32 an_id = 1; }' type: PROTOBUF
支持值:NONE、FORWARD、BACKWARD、FULL、FORWARD_TRANSITIVE、BACKWARD_TRANSITIVE、FULL_TRANSITIVE
file:外部模式文件路径(相对当前YAML)schema:内联模式字符串(二选一,推荐使用file)通过Java Properties文件配置客户端,示例(含SSL):
propertiesschema.registry.url=https://localhost:8081 security.protocol=SSL schema.registry.ssl.truststore.location=truststore.jks schema.registry.ssl.truststore.password=<secret> schema.registry.ssl.keystore.location=keystore.jks schema.registry.ssl.keystore.password=<secret> schema.registry.ssl.key.password=<secret>
使用--properties参数指定文件:
shdocker run -v "$(pwd)/config":/config domnikl/schema-registry-gitops apply --properties /config/client.properties /config/state.yml
支持前缀SCHEMA_REGISTRY_GITOPS_的环境变量,覆盖Properties配置。示例:
shexport SCHEMA_REGISTRY_GITOPS_SCHEMA_REGISTRY_URL=https://localhost:8081 export SCHEMA_REGISTRY_GITOPS_SECURITY_PROTOCOL=SSL export SCHEMA_REGISTRY_GITOPS_SCHEMA_REGISTRY_SSL_TRUSTSTORE_LOCATION=truststore.jks export SCHEMA_REGISTRY_GITOPS_SCHEMA_REGISTRY_SSL_TRUSTSTORE_PASSWORD=<secret>
Docker传递环境变量:
shdocker run -e SCHEMA_REGISTRY_GITOPS_SCHEMA_REGISTRY_URL=[***] -v "$(pwd)/examples":/data domnikl/schema-registry-gitops plan /data/base.yml
默认不删除状态文件中未列出但注册表存在的主题。如需完全同步(删除未列出主题),在plan/apply中使用-d或--enable-deletes:
shdocker run -v "$(pwd)/examples":/data domnikl/schema-registry-gitops apply -d --registry http://localhost:8081 /data/base.yml
使用Docker构建和测试:
sh# 构建镜像 docker build -t domnikl/schema-registry-gitops . # 运行测试 docker run -v ./examples:/data domnikl/schema-registry-gitops plan --registry http://localhost:8081 /data/base.yml /data/with_references.yml
灵感源自Shawn Seymour的kafka-gitops。感谢Confluent开发Schema Registry及客户端库。



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务