k8s CRD转Java类

117 阅读1分钟

参考文档链接

背景:项目需要通过java服务在k8s集群中部署PrometheusRule和PodMonitor CR资源,因此需要调研CRD转Java类的代码生成工具。

1、引入Fabric8代码生成插件

<build>
    <plugins>
        <plugin>
            <groupId>io.fabric8</groupId>
            <artifactId>java-generator-maven-plugin</artifactId>
            <version>6.4.1</version>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                    <enumUppercase>false</enumUppercase>
                    <generatedAnnotations>false</generatedAnnotations>
                <source>${project.basedir}/src/main/resources/k8s/crds/podmonitor-crd.yaml</source>
            </configuration>
        </plugin>
    </plugins>
</build>

将需要生产代码的crd文件放置到src/main/resources下,pom文件插件配置的<source>值替换为crd文件存储路径;

2、编译项目,生成代码

执行mvn编译命令,生成java pojo

mvn clean compile

编译完成后,在target/generated-sources/java/文件夹下,可以看到crd对应的java类:

image.png

image.png

最后,将生成代码拷贝到需要的地方使用。