OpenShift 4 - DevSecOps Workshop (10) - 向Stage环境部署应用镜像
《OpenShift 4.x HOL教程汇总》
说明:本文已经在OpenShift 4.8环境中验证
《OpenShift 4 - DevSecOps Workshop 系列视频 》
本节将应用镜像部署到“”STAGE区域的项目中。
- 创建“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
- (可选)在测试运行“stage-tekton-tasks”任务前可先手动删除STAGE区域的资源。
$ oc delete all -l app=tekton-tasks -n ${STAGE}
$ oc delete all -l build=tekton-tasks -n ${STAGE}
- 测试运行“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
- 确认已经在“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
- 执行以下命令新建“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}
- 执行以下命令运行“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
- 进入OpenShift控制台的“拓扑”确认在“user1-stage”项目中应用已经部署好,并可通过“路由”地址访问应用。
OpenShift 4 - DevSecOps Workshop (10) - 向Stage环境部署应用镜像相关推荐
- OpenShift 4 - DevSecOps Workshop (9) - 向Dev环境部署应用镜像
<OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 <OpenShift 4 - DevSecOps Workshop 系列视频 & ...
- OpenShift 4 - DevSecOps Workshop (1) - 安装 Workshop 环境
<OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 <OpenShift 4 - DevSecOps Workshop 系列视频 & ...
- OpenShift 4 - DevSecOps Workshop (11) - 通过Trigger启动Pipeline运行
<OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 <OpenShift 4 - DevSecOps Workshop 系列视频 & ...
- OpenShift 4 - DevSecOps Workshop (6) - 为Pipeline增加SonarQube实现SAST
<OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 <OpenShift 4 - DevSecOps Workshop 系列视频 & ...
- OpenShift 4 - DevSecOps Workshop (3) - 从PipelineResource、Task到一个简单的Pipeline
<OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 <OpenShift 4 - DevSecOps Workshop 系列视频 & ...
- [OpenShift 4 - DevSecOps Workshop (16) - 使用 VSCode 编辑运行 Tekton Pipeline 资源
<OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 <OpenShift 4 - DevSecOps Workshop 系列视频 & ...
- OpenShift 4 - DevSecOps Workshop (15) - 利用OpenShift GitOps向多个目标部署应用
<OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 <OpenShift 4 - DevSecOps Workshop 系列视频 & ...
- OpenShift 4 - DevSecOps Workshop (14) - 镜像合规扫描
<OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 <OpenShift 4 - DevSecOps Workshop 系列视频 & ...
- OpenShift 4 - DevSecOps Workshop (13) - 将镜像推送到Quay,并进行漏洞扫描
<OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 <OpenShift 4 - DevSecOps Workshop 系列视频 & ...
最新文章
- Ethereal使用入门
- 【Android 逆向】ARM CPU 架构体系 ( ARM 处理器工作模式 | ARM 架构模型 )
- 【亲测有效】andriod studio性能优化
- tensorflow中的Session方法解释
- JAVA学习篇--Java类加载
- 【英语学习】【WOTD】substantive 释义/词源/示例
- java pixel data_java - JavaFX PixelWriter性能低下
- Experimental Release #2: Multiple Device Support
- CompoundButton.OnCheckedChangeListener与RadioGroup.OnCheckedChangeListener冲突
- bochs镜像java模拟器_bochs WIN7 IMG镜像文件
- 良心到难以置信的网站推(转自b站up主lks)
- 7年加工作经验的程序员,从大厂跳槽出来,遭遇了什么?
- 20层的试炼html5,Vue.js-02:新手村的试炼 - 新世界的武器(指令)
- 马桶的尺寸是多少 马桶尺寸是多大2022
- MSI主板更换后一直进入BIOS界面
- 大话数据结构(五)——栈的两种java实现方式
- Linux中nohup的使用
- ctfshow node.js专题
- 苹果销量第一,棉鞋成养生必备?视频号热销商品还有哪些?
- 智能窗帘研究制作_基于单片机的智能窗帘设计
热门文章
- java和c的反汇编_JAVAP -C反汇编指令的学习(转载)
- html ios按钮,ios样式开关按钮jQuery插件
- java swing 列表框_Java开发笔记(一百三十一)Swing的列表框
- matlab控制算法C语言,PID算法Matlab仿真程序和C程序
- python电商用户购买力分析_Python + pandas + 不同客户购买力图形显示
- oracle+greatest+max,ORACLE 内置函数之 GREATEST 和 LEAST(求多列的最大值,最小值)
- 设计灵感|音乐播放器App界面如何设计?
- UI设计图标素材|如何应用合适图标
- UI设计实用素材|功能性图标ICON的作用
- java调用mq发送文件_谁有mq发送接收文件的java代码