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

《OpenShift 4 - DevSecOps Workshop 系列视频 》

本节将应用镜像部署到“”STAGE区域的项目中。

  1. 创建“stage-tekton-tasks”任务,将应用镜像部署到STAGE区域。
$ oc apply -f - << EOF
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:name: stage-tekton-tasksnamespace: ${CICD}
spec:params:- default: tasksdescription: The name of the appname: app_nametype: string- description: The name dev projectname: dev_projecttype: string- description: The name stage projectname: stage_projecttype: string- description: The app revision/gitsha to send to Stagename: app_revisiontype: stringsteps:- name: cleanup-stage-projectscript: >#!/bin/shset -e -o pipefailecho "Tagging image stream in \$(params.stage_project)/\$(params.app_name):\$(params.app_revision)"          oc tag \$(params.dev_project)/\$(params.app_name):\$(params.app_revision)\$(params.stage_project)/\$(params.app_name):\$(params.app_revision)          if oc get dc/\$(params.app_name) -n \$(params.stage_project); thenecho "Tasks dc exists, cleaning up resources " oc delete -n \$(params.stage_project) dc/\$(params.app_name) svc/\$(params.app_name) route/\$(params.app_name) || echo "Some resources didn't clean up as expected"; fiimage: 'quay.io/openshift/origin-cli:latest'- name: deploy-new-version-to-stagescript: >#!/bin/shset -e -o pipefailecho "Deploying new version into \$(params.stage_project)  project "  oc new-app --image-stream=\$(params.app_name):\$(params.app_revision) -n \$(params.stage_project) --as-deployment-config=true -o yaml | oc apply -n \$(params.stage_project)  -f -   if ! oc get route/\$(params.app_name) -n \$(params.stage_project) ; thenecho "Route not found, creating a new one" oc expose svc \$(params.app_name) -n \$(params.stage_project); fi  image: 'quay.io/openshift/origin-cli:latest'
EOF
  1. (可选)在测试运行“stage-tekton-tasks”任务前可先手动删除STAGE区域的资源。
$ oc delete all -l app=tekton-tasks -n ${STAGE}
$ oc delete all -l build=tekton-tasks -n ${STAGE}
  1. 测试运行“stage-tekton-tasks”任务,确认可以运行成功。其中的“user1-stage/tekton-tasks:bde3105 set to user1-dev/tekton-tasks@sha256:dfeb236854a1326d2aba2e95e41ad678715531c3060610a35dc59013fd13c947”是指向应用镜像。注意:参数中“**bde3105 **”为前面获得的“gitsha”。
$ tkn task start stage-tekton-tasks -n ${CICD} --showlog \--param app_name=tekton-tasks \--param dev_project=${DEV} \--param stage_project=${STAGE} \--param app_revision=bde3105
。。。
[cleanup-stage-project] Tagging image stream in  user1-stage/tekton-tasks:bde3105
[cleanup-stage-project] Tag user1-stage/tekton-tasks:bde3105 set to user1-dev/tekton-tasks@sha256:dfeb236854a1326d2aba2e95e41ad678715531c3060610a35dc59013fd13c947.
[cleanup-stage-project] Error from server (NotFound): deploymentconfigs.apps.openshift.io "tekton-tasks" not found[deploy-new-version-to-stage] Deploying new version into user1-stage  project
[deploy-new-version-to-stage] deploymentconfig.apps.openshift.io/tekton-tasks created
[deploy-new-version-to-stage] service/tekton-tasks created
[deploy-new-version-to-stage] Error from server (NotFound): routes.route.openshift.io "tekton-tasks" not found
[deploy-new-version-to-stage] Route not found, creating a new one
[deploy-new-version-to-stage] route.route.openshift.io/tekton-tasks exposed
  1. 确认已经在“STAGE”项目中生成新的DeploymentConfig和Route等对象。
$ oc get all -n $STAGE
NAME                        READY   STATUS      RESTARTS   AGE
pod/tekton-tasks-1-deploy   0/1     Completed   0          2m38s
pod/tekton-tasks-1-mfrkb    1/1     Running     0          2m35sNAME                                   DESIRED   CURRENT   READY   AGE
replicationcontroller/tekton-tasks-1   1         1         1       2m38sNAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
service/tekton-tasks   ClusterIP   172.30.164.21   <none>        8080/TCP,8443/TCP,8778/TCP   2m39sNAME                                              REVISION   DESIRED   CURRENT   TRIGGERED BY
deploymentconfig.apps.openshift.io/tekton-tasks   1          1         1         config,image(tekton-tasks:bde3105)NAME                                          IMAGE REPOSITORY                                                                                                TAGS      UPDATED
imagestream.image.openshift.io/tekton-tasks   default-route-openshift-image-registry.apps.cluster-84b8.84b8.sandbox996.opentlc.com/user1-stage/tekton-tasks   bde3105   2 minutes agoNAME                                    HOST/PORT                                                                PATH   SERVICES       PORT       TERMINATION   WILDCARD
route.route.openshift.io/tekton-tasks   tekton-tasks-user1-stage.apps.cluster-84b8.84b8.sandbox996.opentlc.com          tekton-tasks   8080-tcp                 None
  1. 执行以下命令新建“tasks-stage-pipeline”管道,在其中调用了“stage-tekton-tasks”任务。
$ oc apply -f - << EOF
apiVersion: tekton.dev/v1alpha1
kind: Pipeline
metadata:name: tasks-stage-pipelinenamespace: ${CICD}
spec:params:- description: App version to deployname: app_versiontype: stringtasks:- name: deploy-app-to-stagetaskRef:kind: Taskname: stage-tekton-tasksparams:- name: app_namevalue: tekton-tasks- name: dev_projectvalue: ${DEV}- name: stage_projectvalue: ${STAGE}- name: app_revisionvalue: \$(params.app_version)
EOF

或者参照下图在OpenShift控制台中新建名为“tasks-stage-pipeline”的管道,然后在“管道构建器”中创建名为“deploy-app-tasks”的任务,并配置相关参数。

7. 如果需要可以开通从Stage区域访问CICD区域的访问权限。

$ oc policy add-role-to-group edit system:serviceaccounts:${CICD} -n ${STAGE}
  1. 执行以下命令运行“tasks-stage-pipeline”管道。
$ tkn pipeline start tasks-stage-pipeline -n ${CICD} --showlog --param app_version=bde3105
PipelineRun started: tasks-stage-pipeline-run-x2qwp
Waiting for logs to be available...
[deploy-app-to-stage : cleanup-stage-project] Tagging image stream in  user1-stage/tekton-tasks:bde3105
[deploy-app-to-stage : cleanup-stage-project] Tag user1-stage/tekton-tasks:bde3105 set to user1-dev/tekton-tasks@sha256:8735953414726498440f475a1b31dc493fd7a5ba9290398a5d0fc099ac6923d5.
[deploy-app-to-stage : cleanup-stage-project] Error from server (NotFound): deploymentconfigs.apps.openshift.io "tekton-tasks" not found[deploy-app-to-stage : deploy-new-version-to-stage] Deploying new version into user1-stage  project
[deploy-app-to-stage : deploy-new-version-to-stage] deploymentconfig.apps.openshift.io/tekton-tasks created
[deploy-app-to-stage : deploy-new-version-to-stage] service/tekton-tasks configured
[deploy-app-to-stage : deploy-new-version-to-stage] NAME           HOST/PORT                                                                 PATH   SERVICES       PORT       TERMINATION   WILDCARD
[deploy-app-to-stage : deploy-new-version-to-stage] tekton-tasks   tekton-tasks-user1-stage.apps.cluster-39c8.39c8.sandbox139.opentlc.com          tekton-tasks   8080-tcp                 None
  1. 进入OpenShift控制台的“拓扑”确认在“user1-stage”项目中应用已经部署好,并可通过“路由”地址访问应用。

OpenShift 4 - DevSecOps Workshop (10) - 向Stage环境部署应用镜像相关推荐

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

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

  2. OpenShift 4 - DevSecOps Workshop (1) - 安装 Workshop 环境

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

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

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

  4. OpenShift 4 - DevSecOps Workshop (6) - 为Pipeline增加SonarQube实现SAST

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

  5. OpenShift 4 - DevSecOps Workshop (3) - 从PipelineResource、Task到一个简单的Pipeline

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

  6. [OpenShift 4 - DevSecOps Workshop (16) - 使用 VSCode 编辑运行 Tekton Pipeline 资源

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

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

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

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

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

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

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

最新文章

  1. Ethereal使用入门
  2. 【Android 逆向】ARM CPU 架构体系 ( ARM 处理器工作模式 | ARM 架构模型 )
  3. 【亲测有效】andriod studio性能优化
  4. tensorflow中的Session方法解释
  5. JAVA学习篇--Java类加载
  6. 【英语学习】【WOTD】substantive 释义/词源/示例
  7. java pixel data_java - JavaFX PixelWriter性能低下
  8. Experimental Release #2: Multiple Device Support
  9. CompoundButton.OnCheckedChangeListener与RadioGroup.OnCheckedChangeListener冲突
  10. bochs镜像java模拟器_bochs WIN7 IMG镜像文件
  11. 良心到难以置信的网站推(转自b站up主lks)
  12. 7年加工作经验的程序员,从大厂跳槽出来,遭遇了什么?
  13. 20层的试炼html5,Vue.js-02:新手村的试炼 - 新世界的武器(指令)
  14. 马桶的尺寸是多少 马桶尺寸是多大2022
  15. MSI主板更换后一直进入BIOS界面
  16. 大话数据结构(五)——栈的两种java实现方式
  17. Linux中nohup的使用
  18. ctfshow node.js专题
  19. 苹果销量第一,棉鞋成养生必备?视频号热销商品还有哪些?
  20. 智能窗帘研究制作_基于单片机的智能窗帘设计

热门文章

  1. java和c的反汇编_JAVAP -C反汇编指令的学习(转载)
  2. html ios按钮,ios样式开关按钮jQuery插件
  3. java swing 列表框_Java开发笔记(一百三十一)Swing的列表框
  4. matlab控制算法C语言,PID算法Matlab仿真程序和C程序
  5. python电商用户购买力分析_Python + pandas + 不同客户购买力图形显示
  6. oracle+greatest+max,ORACLE 内置函数之 GREATEST 和 LEAST(求多列的最大值,最小值)
  7. 设计灵感|音乐播放器App界面如何设计?
  8. UI设计图标素材|如何应用合适图标
  9. UI设计实用素材|功能性图标ICON的作用
  10. java调用mq发送文件_谁有mq发送接收文件的java代码