Slack公式のJIRA連携機能を試した
Slackが公式に公開しているJIRA連携機能を試してみました。
JIRA連携機能はJIRA CloudとJIRA Serverに対応しています。今回は個人で運用しているJIRA Serverを利用しました。
以下の手順でSlackとJIRAを連携できます。詳しくは公式ページを参照してください。
- 自分のSlackワークスペースにJIRA Server Alertsを追加する。
- 通知先のチャンネルを指定する。
- JIRAでWebHookを作成する。
これだけです。簡単ですね。
JIRAのWebHookは以下のように設定しています。
デフォルトではIssueのステータスを更新した時にのみ通知されるようです。以下のオプションを有効にすると、Issueにコメントを書いた時にも通知されるようになります。
JIRAのIssueにコメントを書いて、ステータスをDoneに更新すると、Slackに以下のように通知されます。
以下の点が気になりました。
- ユーザ名ではなくフルネームが表示されるため、Slack上でメンションにならないので通知に気付かない。Slackの通知設定でフルネームを入れておけば解決しそう。
- JIRA記法のメンション(
[~hidetake]
)がSlack記法のメンション(@hidetake
)に変換されない。これもSlackの通知設定で解決しそう。 - デフォルトでは標準的なステータスしか設定されていないので、チームで独自のステータス(In Reviewなど)を使っている場合は設定を見直す必要がある。
SlackとJIRAの連携は簡単なので、ぜひ試してみてください。
ちなみに上記の問題点を解決した拙作のBotもあります。参考まで。
開発基盤ツールのHelm charts
開発基盤ツールをKubernetesで運用する時に使えるHelm chartsを調べたのでまとめました。開発支援ツールやDevOpsツールという言い方もあるかもしれません。
Atlassian JIRA Software
オフィシャルのHelm chartやDockerイメージはありません。検索したところ以下のHelm chartがあります。
- devops-kompose/atlassian-jira-software at master · int128/devops-kompose · GitHub (拙作です)
- helm-charts/jira at master · seibert-media/helm-charts · GitHub
- helm-charts/jira at master · linkyard/helm-charts · GitHub
Atlassian Confluence
AtlassianオフィシャルのDockerイメージが公開されています。
オフィシャルのHelm chartはありません。検索したところ以下のHelm chartがあります。
- devops-kompose/atlassian-confluence at master · int128/devops-kompose · GitHub (拙作です)
- helm-charts/confluence at master · seibert-media/helm-charts · GitHub
- helm-charts/confluence at master · linkyard/helm-charts · GitHub
Nextcloud / ownCloud
ownCloudはオフィシャルのHelm chartがあります。
NextcloudのHelm chartですが、以下のPull Requestがレビュー中なので近日中に使えるようになると思います。
Mattermost
オフィシャルのHelm chartがありますが、まだstableではないようです。
GitLab
オフィシャルのHelm chartが公開されています。OmnibusとCloud Native Chartの2種類があります。
今のところCloud Native Chartはアルファ版なので、Omnibusを使う方がよさそうです。ただし、OmnibusはコンテナレジストリやMattermostなども付いてきます。私の環境では上記のHelm chartを使わず、公式のDockerイメージを使っています。
Jenkins
オフィシャルのHelm chartがあります。Jenkins MasterとJenkins Agentが提供されています。
SonarQube
オフィシャルのHelm chartがあります。
Nexus
オフィシャルのHelm chartがあります。
- 作者: Kelsey Hightower,Brendan Burns,Joe Beda,松浦隼人
- 出版社/メーカー: オライリージャパン
- 発売日: 2018/03/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
チーム開発実践入門 ~共同作業を円滑に行うツール・メソッド (WEB+DB PRESS plus)
- 作者: 池田尚史,藤倉和明,井上史彰
- 出版社/メーカー: 技術評論社
- 発売日: 2014/04/16
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (11件) を見る
Helmfile supports inlined values in YAML
HelmfileはKubernetesクラスタのHelm releasesを管理するツールです。 helmfile.yaml
にデプロイしたいHelm chartを書いて helmfile sync
を実行するだけでインストールやアップグレードを冪等にやってくれるので便利です。
例えば、Kubernetes DashboardとHeapsterをクラスタに配置したい場合は以下のYAMLを書くだけでOKです。
releases: - name: kubernetes-dashboard namespace: kube-system chart: stable/kubernetes-dashboard - name: heapster namespace: kube-system chart: stable/heapster values: - rbac: create: true
設定値を変更したい場合はYAMLを変更して helmfile sync
を実行すると反映されます。
これまで、Helm chartに設定値を渡したい場合は設定値をkey=valueの形式で記述する必要がありました。Helmコマンドは設定値をYAMLで書けるのに、Helmfileではkey=valueのリストで書く必要がありました。例えばこんな感じです。
releases: - name: kubernetes-dashboard-proxy namespace: kube-system chart: int128.github.io/kubernetes-dashboard-proxy set: - name: ingress.enabled value: true - name: ingress.hosts[0] value: {{ requiredEnv "KUBE_DASHBOARD_DOMAIN" }}
Helmfile 0.16.0から設定値をインラインで書けるようになりました。これによりYAMLの可読性が大きく改善しました。
releases: - name: kubernetes-dashboard-proxy namespace: kube-system chart: int128.github.io/kubernetes-dashboard-proxy values: - ingress: enabled: true hosts: - {{ requiredEnv "KUBE_DASHBOARD_DOMAIN" }}
もしHelmコマンドとvalues.yamlファイルで構成管理を行っている場合、それらを1つの helmfile.yaml
にまとめると管理しやすくなります。ぜひ試してみてください。
See also
- GitHub - roboll/helmfile: Deploy Kubernetes Helm Charts
- Inline values support by int128 · Pull Request #139 · roboll/helmfile · GitHub
- Read dynamic type values from YAML in Golang - @int128
- 作者: Kelsey Hightower,Brendan Burns,Joe Beda,松浦隼人
- 出版社/メーカー: オライリージャパン
- 発売日: 2018/03/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る