jenkins+python+kubectl实现批量更新k8s镜像
一、jenkins使用官方镜像(官方镜像默认是jenkins用户,权限太低)
因此通过dockerfile重新改为root启动
FROM jenkins/jenkins:lts
MAINTAINER dwy COPY get-pip.py /tmp/
# if we want to install via apt
USER root
RUN python /tmp/get-pip.py \
&& pip install requests RUN apt-get update && apt-get install -y apt-transport-https \
&& curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl \
&& chmod +x ./kubectl \
&& mv ./kubectl /usr/local/bin/kubectl \
&& mkdir /root/.kube \
&& touch /root/.kube/config \
&& apt-get install vim -y # drop back to the regular jenkins user - good practice
#USER jenkins
二、容器启动后,创建/root/.kube/config文件
然后在k8s集群里面下载对应kubeconfig.json,将文件内容复制到/root/.kube/config里面
三、jenkins安装python插件
具体代码如下
#!/usr/bin/env python
# -*- coding: utf-8 -*- import requests
import json,sys
from subprocess import Popen,PIPE image_tag_list = [
["hlike","nginx","201804h2_0721"],
["hlik","slm",""],
] for n,li in enumerate(image_tag_list,1):
print "num %s execute: ******************************************************************" %n
namespace = li[0]
repository = li[1]
tag = li[2] #文件读取出
uri="swr-api.cn-north-1.myhuaweicloud.com" #北京swr-api
url = "https://%s/v2/manage/namespaces/%s/repos/%s/tags" %(uri,namespace,repository) #根据官方容器镜像仓库api获取对应image:tag
res = requests.get(url, headers=headers).json() #这里我没写token,具体仓库,具体自己分析一下api如何获取信息,
tag_exist = False if type(res) == dict and res.has_key("errors"):
print "log: %s/%s is wrong!!!!!" %(namespace,repository)
sys.exit(1)
for line in res: #循环返回的结果,得到镜像对应信息
if line["Tag"] == tag :#比较返回tag和文件里面的tag是否有相等,若相等,说仓库存在对应镜像
tag_exist = True
print "%s/%s %s is exist!!!!!!!!!" % (namespace, repository, tag)
updated = line["updated"]
path = line["path"]
cmd1 = "kubectl set image deployment/%s %s=%s" %(repository,repository,path)
print "log: now is setting image,cmd: ",cmd1
ret = excute(cmd1)
print ret
if not tag_exist:
print "log: %s/%s %s is not exist" %(namespace,repository,tag)
sys.exit(1)
jenkins+python+kubectl实现批量更新k8s镜像的更多相关文章
- 更新k8s镜像版本的三种方式
		
一.知识准备 更新镜像版本是在k8s日常使用中非常常见的一种操作,本文主要介绍更新介绍的三种方法 二.环境准备 组件 版本 OS Ubuntu 18.04.1 LTS docker 18.06.0-c ...
 - 利用pip批量更新python库
		
如果python库比较旧,需要更新到最新版本,可以利用pip工具. DOS命令行下,输入pip -V查看pip版本,可以先把pip更新到新版本. 查看系统里过期的python库 pip list #列 ...
 - python安装包及批量更新包
		
python安装包 # pip安装 pip install pyecharts # 源码安装 - linux git clone https://github.com/pyecharts/pyecha ...
 - 利用Dnspod api批量更新添加DNS解析【python脚本】 - 推酷
		
利用Dnspod api批量更新添加DNS解析[python脚本] - 推酷 undefined
 - 微软在MSDN中更新了Win8.1批量授权版镜像(中文版更新完毕&版本说明)
		
微软在MSDN中更新了Win8.1大客户专业版和企业版镜像,零售版镜像(即专业版+核心版二合一镜像)没有更新,依然是9月份发布的版本.已证实,新的批量授权版镜像是集成了GA Rollup A更新,并且 ...
 - pip --upgrade批量更新过期的python库
		
pip --upgrade批量更新过期的python库 python pip 转载请标明出处:marsggbo网易博客http://blog.163.com/hexin_mars_blog/blog/ ...
 - PIP 批量更新改为清华这边的镜像更新
		
之前pip批量更新的时候发现有些包无法更新,而且速度也特别慢,今天尝试了下清华的镜像,速度是真快 # coding=utf-8import pipfrom subprocess import call ...
 - Python批量更新模块的方法【面试必学】
		
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:ranchlin 小编的环境为win10+python 3. ...
 - 使用Python批量更新服务器文件【新手必学】
		
买了个Linux服务器,Centos系统,装了个宝塔搭建了10个网站,比如有时候要在某个文件上加点代码,就要依次去10个文件改动,虽然宝塔是可视化页面操作,不需要用命令,但是也麻烦,虽然还有git的h ...
 
随机推荐
- Linux服务器---本地yum
			
本地yum 本地yum可以实现各种包的快速安装,避免漫长的下载过程 1.找一个centos的安装包,将其挂载的系统中 [root@localhost ~]# mount –t iso9660 –loo ...
 - windows下nodejs express安装及入门网站,视频资料,开源项目介绍
			
windows下nodejs express安装及入门网站,视频资料,开源项目介绍,pm2,supervisor,npm,Pomelo,Grunt安装使用注意事项等总结 第一步:下载安装文件下载地址: ...
 - python3.4学习笔记(十九) 同一台机器同时安装 python2.7 和 python3.4的解决方法
			
python3.4学习笔记(十九) 同一台机器同时安装 python2.7 和 python3.4的解决方法 同一台机器同时安装 python2.7 和 python3.4不会冲突.安装在不同目录,然 ...
 - Python Web学习笔记之TCP的3次握手与4次挥手过程
			
前言 尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务.TCP提供一种面向连接的.可靠的字节流服务. 面向连接意味着两个使用TCP的应用(通常是一个客户和一个服 ...
 - stm32时钟树讲解
			
1.管理好时钟,功耗才能更低
 - JAVA I/O(三)内存映射文件
			
<Java编程思想>中对内存映射文件有详细的介绍,此处仅做简单记录和总结.内存映射文件允许创建和修改因为太大而不能放入内存的文件. 1. 内存映射文件简单实例 import java.io ...
 - win10 字体渲染优化 色彩调整
			
最近烧包买了个2k显示器,发现跟win10使用,一堆问题,最大的就是字体,其实应该买4k,那样正好设置200%字体,现在设置的124% 字体: 以前使用的是mactype这个软件 https://pa ...
 - Specify Computed Columns in a Table
			
https://docs.microsoft.com/en-us/sql/relational-databases/tables/specify-computed-columns-in-a-table ...
 - 论文笔记——DenseNet
			
<Densely Connected Convolutional Networks>阅读笔记 代码地址:https://github.com/liuzhuang13/DenseNet 首先 ...
 - Leetcode ——Partition Equal Subset Sum
			
Question Given a non-empty array containing only positive integers, find if the array can be partiti ...