cloud foundry_介绍“又一个” Cloud Foundry Gradle插件

cloud foundry

在与两个同事(感谢Mark AlstonDave Malone !)一起使用自动Jenkins管道部署Cloud Foundry应用程序的过程中,我决定尝试编写Gradle插件来执行一些通常需要完成的任务使用命令行Cloud Foundry Client完成

引入一个完全虚幻的名称为“ ya-cf-app-gradle-plugin”的一组gradle任务(敢说我敢说!),这应该有助于自动化将Java应用程序部署到Cloud Foundry环境中涉及的一些常规步骤。 “ ya”或另一部分是因为这只是一个替代插件,Cloud Foundry的权威插件最终将驻留在出色的CF-Java-Client项目中。

我已经提供了带有项目文档的广泛自述文件,该文件应该有助于使用插件入门,如果您以前使用过CF cli,则任务应该非常直观。

举例来说,将gradle插件干净地添加到构建脚本中后,通过运行“ ./gradlew task”命令列出以下gradle任务即可:

cf-plugin-tasks

所有任务均以构建脚本中cfConfig块中提供的以下方式进行配置:

apply plugin: 'cf-app'

cfConfig {
 //CF Details
 ccHost = "api.local.pcfdev.io"
 ccUser = "admin"
 ccPassword = "admin"
 org = "pcfdev-org"
 space = "pcfdev-space"

 //App Details
 name = "cf-show-env"
 hostName = "cf-show-env"
 filePath = "build/libs/cf-show-env-0.1.2-SNAPSHOT.jar"
 path = ""
 domain = "local.pcfdev.io"
 instances = 2
 memory = 512

 //Env and services
 buildpack = "https://github.com/cloudfoundry/java-buildpack.git"
 environment = ["JAVA_OPTS": "-Djava.security.egd=file:/dev/./urandom", "SPRING_PROFILES_ACTIVE": "cloud"]
 services  = ["mydb"]
}

以这种方式提供的基本配置之上的任何替代都可以通过使用“ cf. *”模式指定gradle属性来完成。 例如。 正常推送应用程序将如下所示:

./gradlew cf-push

带有应用程序名称和覆盖的主机名的推送将如下所示:

./gradlew cf-push -Pcf.name=Green -Pcf.hostName=demo-time-temp

所有任务均遵循完全相同的模式,具体取决于cfConfig块作为权威的属性源以及命令行覆盖。 在CloudFoundry中有一项任务可用于检索应用程序的某些详细信息,该任务为“ cf-get-app-detail”,例如,在部署了应用程序的Canary实例后,您想运行快速测试针对它,任务将遵循以下原则,一旦成功调用,将使用应用程序详细信息填充结构“ project.cfConfig”:

task acceptanceTest(type: Test, dependsOn: "cf-get-app-detail")  {
 doFirst() {
  systemProperty "url", "https://${project.cfConfig.applicationDetail.urls[0]}"
 }
 useJUnit {
  includeCategories 'test.AcceptanceTest'
 }
}

参考文献:

1.该插件基于出色的CF-Java-Client项目构建

2.我从gradle-cf-plugin借鉴了很多想法,但是或多或少是一个无尘室的实现

3.这是一个使用插件的示例项目

翻译自: https://www.javacodegeeks.com/2016/07/introducing-yet-another-cloud-foundry-gradle-plugin.html

cloud foundry

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值