《OpenShift 4.x HOL教程汇总》
说明:本文已经在OpenShift 4.8环境中验证

《OpenShift 4 - DevSecOps Workshop 系列视频 》

文章目录

  • 创建Git类型的PipelineResource
  • 了解 Maven 镜像
  • 探索 Task 和 TaskRun
  • 用 Pipeline 串起 Task、PipelineResource

本节创建一个只有一个任务的的Pipeline,完成位于Gitea上的应用代码编译。

创建Git类型的PipelineResource

  1. 可以用以下任意一种方法创建Git类型的PipelineResource对象,其中Git Repo地址为“${GIT_REPO}”,而“dso4”是该Repo的当前分支名。
    第一种方法:
$ oc apply -f - << EOF
apiVersion: tekton.dev/v1alpha1
kind: PipelineResource
metadata:name: tasks-source-codenamespace: ${CICD}
spec:params:- name: urlvalue: ${GIT_REPO}- name: revisionvalue: dso4type: git
EOF

第二种方法:其中“https://<GITEA-SERVER>/user1/openshift-tasks.git/user1/openshift-tasks.git”是“${GIT_REPO}”的地址。

$ tkn resource create -n ${CICD}
? Enter a name for a pipeline resource : tasks-source-code
? Select a resource type to create :  [Use arrows to move, type to filter]cloudEventcluster
> gitimagepullRequeststorage
? Select a resource type to create : git
? Enter a value for url :  https://<GITEA-SERVER>/user1/openshift-tasks.git
? Enter a value for revision :  dso4
  1. 查看创建的PipelineResource。
$ tkn resource list -n ${CICD} | grep tasks-source-code
tasks-source-code    git     url: https://gitea-server-devsecops.apps.cluster-39c8.39c8.sandbox139.opentlc.com/user1/openshift-tasks.git```

了解 Maven 镜像

  1. 执行命令,运行一个Maven镜像。
$ oc project ${CICD}
$ oc run mvn-builder --image=gcr.io/cloud-builders/mvn --rm -it --command -- /bin/bash
If you don't see a command prompt, try pressing enter.
bash-4.4$
  1. 查看镜像中Maven的版本。
bash-4.4$ mvn -version
Apache Maven 3.8.1 (05c21c65bdfed0f71a2f2ada8b84da59348c4c5d)
Maven home: /usr/share/maven
Java version: 16.0.2, vendor: Oracle Corporation, runtime: /usr/java/openjdk-16
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "4.18.0-305.10.2.el8_4.x86_64", arch: "amd64", family: "unix"
  1. 从Gitea中下载应用代码。注意:“https://<GIT_URL>”是Gitea Server的访问地址。
bash-4.4$ curl https://<GIT_URL>/user1/openshift-tasks/archive/dso4.tar.gz | tar xz -C /tmp
bash-4.4$ ls /tmp/openshift-tasks
README.md  app-template.yaml  configuration  pipeline-bc.yaml  pom.xml  src
  1. 编译打包应用。注意,如果发现“maven-compiler-plugin:3.8.0”错误,这是由于Maven版本导致的。
bash-4.4$ mvn clean package -Dmaven.repo.local=/tmp/.m2 -f /tmp/openshift-tasks/pom.xml
。。。
[INFO] 18 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:55 min
[INFO] Finished at: 2020-07-20T23:15:57Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project jboss-tasks-rs: Compilation failure: Compilation failure:
[ERROR] /tmp/openshift-tasks/src/main/java/org/jboss/as/quickstarts/tasksrs/model/User.java:[31,33] package javax.xml.bind.annotation does not exist
。。。
  1. 退出Maven容器。
bash-4.4$ exit
  1. 下载运行“mvn:3.5.0-jdk-8”的容器,然后重新编译打包应用。
$ oc run mvn-builder --image=gcr.io/cloud-builders/mvn:3.5.0-jdk-8 --rm -it --command -- /bin/bash
If you don't see a command prompt, try pressing enter.
bash-4.4$ curl https://<GIT_URL>/user1/openshift-tasks/archive/dso4.tar.gz | tar xz -C /tmp
bash-4.4$ mvn clean package -Dmaven.repo.local=/tmp/.m2 -f /tmp/openshift-tasks/pom.xml
。。。
[INFO] Scanning for projects...
Downloading: https://maven.repository.redhat.com/ga/org/jboss/bom/jboss-eap-javaee7/7.0.1.GA/jboss-eap-javaee7-7.0.1.GA.pom
... snipped for brevity ...
[INFO] Building war: /tmp/openshift-tasks/target/openshift-tasks.war
[INFO] WEB-INF/web.xml already added, skipping
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS------------------------------------------------------------------------
  1. 退出Maven容器。
bash-4.4$ exit

探索 Task 和 TaskRun

  1. 创建一个新的Task对象,Task将执行参数包括“clean package”的mvn命令。
$ oc create -f - << EOF
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:name: simple-mavennamespace: ${CICD}
spec:resources:inputs:- name: sourcetype: gitsteps:- name: mvn-goalsscript: |/usr/bin/mvn clean package -f \$(resources.inputs.source.path)/pom.xmlimage: gcr.io/cloud-builders/mvn:3.5.0-jdk-8
EOF
  1. 查看新创建Task的信息。
$ tkn task describe simple-maven -n ${CICD}
Name:        simple-maven
Namespace:   user1-cicd												

OpenShift 4 - DevSecOps Workshop (3) - 从PipelineResource、Task到一个简单的Pipeline相关推荐

  1. OpenShift 4 - DevSecOps Workshop (5) - 为Pipeline增加测试Task

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 <OpenShift 4 - DevSecOps Workshop 系列视频 & ...

  2. OpenShift 4 - DevSecOps Workshop (4) - 为 Task 增加参数和Workspace

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 <OpenShift 4 - DevSecOps Workshop 系列视频 & ...

  3. OpenShift 4 - DevSecOps Workshop (15) - 利用OpenShift GitOps向多个目标部署应用

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 <OpenShift 4 - DevSecOps Workshop 系列视频 & ...

  4. OpenShift 4 - DevSecOps Workshop (14) - 镜像合规扫描

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 <OpenShift 4 - DevSecOps Workshop 系列视频 & ...

  5. OpenShift 4 - DevSecOps Workshop (13) - 将镜像推送到Quay,并进行漏洞扫描

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 <OpenShift 4 - DevSecOps Workshop 系列视频 & ...

  6. OpenShift 4 - DevSecOps Workshop (11) - 通过Trigger启动Pipeline运行

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 <OpenShift 4 - DevSecOps Workshop 系列视频 & ...

  7. OpenShift 4 - DevSecOps Workshop (10) - 向Stage环境部署应用镜像

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 <OpenShift 4 - DevSecOps Workshop 系列视频 & ...

  8. OpenShift 4 - DevSecOps Workshop (9) - 向Dev环境部署应用镜像

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 <OpenShift 4 - DevSecOps Workshop 系列视频 & ...

  9. OpenShift 4 - DevSecOps Workshop (7) - 为Pipeline增加向Nexus制品库推送任务

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 <OpenShift 4 - DevSecOps Workshop 系列视频 & ...

最新文章

  1. 实现无线AP无缝漫游
  2. VirtualBox虚拟机中Ubuntu11.10安装Additions出现 读写错误的解决办法
  3. [SDOI2011]消耗战
  4. android gravity参数,Gravity - [ Android中文手册 ] - 在线原生手册 - php中文网
  5. leetcode 95 python
  6. 解决浏览器无法登陆pki问题,删除浏览器缓存
  7. ajax control toolkit vs2013,VS2008 .net framework 3.5使用Ajax Control Toolkit完整解决方案
  8. Java中volatile关键字实现原理
  9. HUAWEI HiAI 3.0 分布式,瑜伽、开车还能这么玩......
  10. JavaWeb 学习路线
  11. Google退出内地市场
  12. win7怎么用Win10计算机,win7升至win10的电脑,使用半年多后出现各种系统问题,重装还是升级一周年版?...
  13. 第7章第31节:四图排版:四张图片两两一组并行排列 [PowerPoint精美幻灯片实战教程]
  14. Matlab R2017b 自动驾驶工具箱学习笔记(2)_Tutorials_Visual Perception Using Monocular Camera
  15. git命令 统计某成员/全部人员的代码提交量
  16. spring实战学习(二)spEL表达式
  17. 怎么将翼型导入catia_catia与cfd的翼型设计
  18. 业务流程图怎么画?3步+8张案例,5分钟教你快速上手!
  19. 永磁同步电机矢量控制到无速度传感器控制学习教程(PMSM)(一)
  20. 后疫情时代,数据科学赋能旅游行业服务质量提升

热门文章

  1. 什么舱位_把“订舱位”说成book warehouse position,外企不会要你
  2. 路由包含#号导致的nginx_分布式实战:Nginx缓存之OpenResty部署
  3. kafka实现异步发送_深入理解Kafka的发送流程
  4. android 实现 效果代码,Android实现雷达View效果的示例代码
  5. 网站模型|可以帮助你以一种美丽、独特的方式展示你的网站设计。
  6. 设计界新人不用再苦找资源网站啦!一流导航神器收藏起来!
  7. php遍历文件制作删除,使用PHP遍历文件目录与清除目录中文件的实现详解
  8. 波特率与频率的换算公式?_高中物理公式总结表
  9. php sqlite视图,SQLite 视图
  10. 链式二叉树的C语言代码