我们使用fabric8 maven插件来构建maven项目并将其部署到kubernetes中。
我不太清楚如何使用fabric8:helm目标。
我试着弄到一些关于它究竟是什么的细节,但我不太明白:
$ mvn help:describe -Dgoal=helm -DgroupId=io.fabric8 -DartifactId=fabric8-maven-plugin -Ddetail这是输出:
fabric8:helm
Description: Generates a Helm chart for the kubernetes resources
Implementation: io.fabric8.maven.plugin.mojo.build.HelmMojo
Language: java
Bound to phase: pre-integration-test
Available parameters:
helm
(no description available)
kubernetesManifest (Default:
${basedir}/target/classes/META-INF/fabric8/kubernetes.yml)
User property: fabric8.kubernetesManifest
The generated kubernetes YAML file
kubernetesTemplate (Default:
${basedir}/target/classes/META-INF/fabric8/k8s-template.yml)
User property: fabric8.kubernetesTemplate
The generated kubernetes YAML file
skip (Default: false)
User property: fabric8.skip
(no description available)
...在我们的项目中,我们在src/main/fabric8中有工件。此文件夹的内容如下:
tree src/main/fabric8
src/main/fabric8
├── forum-configmap.yaml
├── forum-deployment.yaml
├── forum-route.yaml
└── forum-service.yaml这些文件只与kubernetes有关。
我在那边找不到任何片段:
发布于 2018-08-22 17:37:58
为了玩这个游戏,我抓起了一个带有Web依赖的基本spring引导项目和一个用RestController创建的弹簧初始化。fabric8插件文档说首先要运行资源目标,所以我转到项目的基本目录并运行mvn -B io.fabric8:fabric8-maven-plugin:3.5.41:resource。这为我在/target/classes/META-INF/fabric8/下的项目生成了kubernetes描述符。
于是我运行了mvn -B io.fabric8:fabric8-maven-plugin:3.5.41:resource io.fabric8:fabric8-maven-plugin:3.5.41:helm。一开始我发现一个错误:
target/classes/META-INF/fabric8/k8s-template does not exist so cannot make chart <project_name>. Probably you need run 'mvn fabric8:resource' before.
但是描述符确实存在于/target/classes/META-INF/fabric8/kubernetes/下,所以我将该目录重命名为k8s-template并再次运行。然后,它在/target/fabric8/helm/kubernetes/目录中为我创建了一个舵图。
所以我跟踪了医生们,然后运行helm install target/fabric8/helm/kubernetes/。他们抱怨说没有Chart.yaml。那时,我意识到,我对文档的跟踪太严格了,需要运行helm install target/fabric8/helm/kubernetes/<project_name>。这确实创建了一个头盔发行版,并将我的项目安装到kubernetes。它没有开始,因为我没有创造任何码头形象。它似乎默认为<groupId>/<artifactId>:<version/snapshot-number>的图像名称。如果我还运行了“建设”目标和推目标,并且我的kubernetes可以访问一个码头注册中心,那么大概就会出现这种情况。
因此,简而言之,舵机目标产生了一个基本的舵图。我相信,如果您的应用程序需要使用注入urls或凭据(例如用于数据库或消息代理或身份验证系统)访问共享资源,或者如果应用程序公开多个端口,或者需要initContainers或自定义启动参数,则需要手动自定义此图表。您可能正在尝试自定义这些生成的资源,并通过将文件放入/src/ doing 8/来进行定制。如果您要输入的是k8s文件,那么我猜它们必须在/src/fabric8/kubernetes/中才能输入到预期的/target/目录中,并命名为<project-name>-deployment.yml和<project-name>-svc.yml。
我想所生成的图表至少是一个起点,如果您将所有插件添加到pom中,并且完成所有的设置,而不是运行单个目标,那么这种体验可能会比我的实验要顺利一些。
https://stackoverflow.com/questions/51786357
复制相似问题