使用 GitHub Actions 编译 kubernetes 组件

在使用 kubernetes 过程中由于某些需求往往要修改一下 k8s 官方的源码,然后重新编译才行。本文就以修改 kubeadm 生成证书为默认 100 年为例,来讲解如何使用 GitHub Actions 来编译和发布生成的二进制文件。 构建 clone repo 将 kubernetes 官方源码 fork 到自己的 repo 中

workflow .github/workflows/kubeadm.yaml

build/run.sh : Run a command in a build docker container. Common invocations: build/run.sh make: Build just linux binaries in the container. Pass options and Read more…

github的token使用方法

github的token使用方法 今天从本地向github push代码发,失败了。错误消息如下: remote: Support for password authentication was remove on August 123, 2021. Please use a personal access token instead. 原因是github不再使用密码方式验证身份,现在使用个人token。 本文记录, 如何生成token 在命令行下怎样使用token github如何生成token github的官方有给出如何生成个人token的文档。参考github官网生成token文档   命令行如何使用token 之前,github使用用户名和密码作为身份验证,现在使用用户名和token作为验证。 比如,github官网给出的示例。克隆一个仓库,提示输入用户名和密码,此处就可以使用上面生成的token作为密码使用。

但是有一个问题,我们总不能记住那么长的一串token吧 为了解决这个问题,github提供了gh工具,通过gh登录验证身份后,之后再不需要验证身份。 此处只演示ubuntu安装gh工具。

然后使用gh进行认证

如下图所示:使用键盘上下键选择对应项,回车键确认。 依次选择Github.com, HTTPS(如果使用的https协议), 选择使用网页浏览器认证或者粘贴token认证,二者选择一个即可。如果是ssh远程登录,命令行中无法打开远程的浏览器,那么只能选择token验证了。选择使用网页认证:先复制命令行中生成的一次性验证码,比如我这里本次是5C38-D954。然后回车,自动打开网页浏览器,输入一次性验证码,授权即可完成认证。如果上面选择使用token认证,那么输入你的token即可。 如果换了一台机器,那么重新生成一个新的token,然后gh auth login即可。

解决ansible mitogen 0.3.0+ 插件未渲染ansible_ssh_common_args模板变量问题

问题 使用ansible mitogen 0.3.4插件进行kubespray安装时,报错: EOF on stream; last 100 lines received:\nssh: Could not resolve hostname {%: Name or service not known 分析 经过debug分析,kubespray-default默认定义了如下变量模板:

但是通过ansible role去执行后,通过mitogen进行ssh并没有渲染出来变量:

可以看到,mitogen的ssh将ansible_ssh_common_args原封不动地输出来了 修改源码验证: 修改transport_config.py, 增加debug信息:

  下面是输出:

  可以看到ssh_common_args变量没有渲染 解决 将_task_vars.get(“vars”, {}) 改为 _task_vars.get(“hostvars”, {}), 从hostvars取值 搜索官方issures: https://github.com/mitogen-hq/mitogen/pull/956 commit ac34252bcccb60b50e6a8ed3a3b2f42d256d62e0 https://github.com/mitogen-hq/mitogen/pull/956/commits/ac34252bcccb60b50e6a8ed3a3b2f42d256d62e0 总结 Read more…