#AWSHelmをご存知だろうか?簡単に言うと、Kubernetesのパッケージマネージャと位置付けられているもの。最近はかなり開発が活発化していて、Kubernetes運用のためのエコシステムとしてメインストリームに出てきている(と言っても良いと思う)。ロゴを見ればわかるとが、Helmは日本語に訳すと舵のこと。KubernetesではService、Deployment、ConfigMap等のKubernetesの様々なリソースを組み合わせることで初めてアプリケーションとして動作できるようにしているわけだが、HelmはKubernetesのリソース群をChartsという単位でパッケージングしてしまおうというもの。プライベートリポジトリを立てたい自分のプロジェクトでもKubernetesをHelm管理していこうと思っているので、さっそくプライベートリポジトリを立ててみた。Helmはプラグインで拡張できる構造となっている。S3上に構築できるhelm-s3を利用する。その前にhelmを導入する必要があるので、以下を見て進めてほしい。Helm特に設定なしでHelmをインストールすると、$HOME/.helm以下にインストールされる。ウチの場合はkubernetesオペレーション用のインスタンスを一つ立てて、そこでKubernetes関連のオペレーションをできるようにしているので、インストール先を変えて一箇所に集約している。プラグインも同じ配下にインストールされるので同様。これは以下のように適宜環境変数を設定して変えてやればいい。initすればhelmが構築される。対象のKubernetesクラスタのkube-systemにはtillerがデプロイされる。tillerはKubernetesクラスタにChartsをインストールしたりするHelmのコア機能を司るデーモンのようなものでHelmにとっては必要不可欠なもの。Helmがインストールされた状態で、helm-s3をインストール。https://github.com/hypnoglow/helm-s3.gitS3のバケットは予め作っておく。基本的に空っぽのバケットでOKで、helm-s3がHelmリポジトリのディレクトリ構成で構築してくれる。configureでAWSのアクセスキーやシークレットを設定しておく(暇見つけてPR投げておきたい)。s3://helm-example-repository/charts次にリポジトリの設定。{s3のcharts置き場のパス}形式で実行。s3://helm-example-repository/chartsこうすると、S3上のHelmリポジトリを利用する準備ができる。$HELM_HOME/repository/repositories.yamlに設定が追加されてるので確認しておく。