kubernetes

Kubernetes の設定ファイルの一部を差し替えるスクリプト

More than 1 year has passed since last update.

はじめに

  • Kubernetes の設定ファイルの値を差し替えるのに kubectl patch が使えるはずなのだが StatefulSet の image の差し替えができないっぽいので急場しのぎのスクリプトを作った

コード

patch_yaml.rb
#!/usr/bin/ruby

require 'yaml'

file, path, value = *ARGV

y = YAML.load_file(file)

yy = y
keys = path.split("/")
keys[0 .. -2].each do |s|
  if s.match(/^\d+/)
    yy = yy[s.to_i]
  else
    yy = yy[s]
  end
end
yy[keys[-1]] = value

print y.to_yaml

使い方

  • StatefulSet の一つ目のコンテナのイメージ名を差し替える場合は以下のような感じ
ruby patch_yaml.rb statefulset.yml spec/template/spec/containers/0/image MY_IMAGE_NAME