GeekFactory

int128.hatenablog.com

Slack公式のJIRA連携機能を試した

Slackが公式に公開しているJIRA連携機能を試してみました。

get.slack.help

JIRA連携機能はJIRA CloudとJIRA Serverに対応しています。今回は個人で運用しているJIRA Serverを利用しました。

以下の手順でSlackとJIRAを連携できます。詳しくは公式ページを参照してください。

  1. 自分のSlackワークスペースにJIRA Server Alertsを追加する。
  2. 通知先のチャンネルを指定する。
  3. JIRAでWebHookを作成する。

これだけです。簡単ですね。

JIRAのWebHookは以下のように設定しています。

f:id:int128:20180522101845p:plain:w425

デフォルトではIssueのステータスを更新した時にのみ通知されるようです。以下のオプションを有効にすると、Issueにコメントを書いた時にも通知されるようになります。

f:id:int128:20180522101207p:plain:w600

JIRAのIssueにコメントを書いて、ステータスをDoneに更新すると、Slackに以下のように通知されます。

f:id:int128:20180522100745p:plain:w509

以下の点が気になりました。

  • ユーザ名ではなくフルネームが表示されるため、Slack上でメンションにならないので通知に気付かない。Slackの通知設定でフルネームを入れておけば解決しそう。
  • JIRA記法のメンション([~hidetake])がSlack記法のメンション(@hidetake)に変換されない。これもSlackの通知設定で解決しそう。
  • デフォルトでは標準的なステータスしか設定されていないので、チームで独自のステータス(In Reviewなど)を使っている場合は設定を見直す必要がある。

SlackとJIRAの連携は簡単なので、ぜひ試してみてください。

ちなみに上記の問題点を解決した拙作のBotもあります。参考まで。

int128.hatenablog.com

開発基盤ツールのHelm charts

開発基盤ツールをKubernetesで運用する時に使えるHelm chartsを調べたのでまとめました。開発支援ツールやDevOpsツールという言い方もあるかもしれません。

Atlassian JIRA Software

オフィシャルのHelm chartやDockerイメージはありません。検索したところ以下のHelm chartがあります。

Atlassian Confluence

AtlassianオフィシャルのDockerイメージが公開されています。

オフィシャルのHelm chartはありません。検索したところ以下のHelm chartがあります。

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があります。


入門 Kubernetes

入門 Kubernetes

コンテナ・ベース・オーケストレーション Docker/Kubernetesで作るクラウド時代のシステム基盤

コンテナ・ベース・オーケストレーション Docker/Kubernetesで作るクラウド時代のシステム基盤

チーム開発実践入門 ~共同作業を円滑に行うツール・メソッド (WEB+DB PRESS plus)

チーム開発実践入門 ~共同作業を円滑に行うツール・メソッド (WEB+DB PRESS plus)

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


入門 Kubernetes

入門 Kubernetes

コンテナ・ベース・オーケストレーション Docker/Kubernetesで作るクラウド時代のシステム基盤

コンテナ・ベース・オーケストレーション Docker/Kubernetesで作るクラウド時代のシステム基盤