Configure Slack notifications for Spinnaker pipelines

Background:

Slack being a predominant business communication & collaboration platform, organizations are solely relying on Slack for collaboration, then why not receive notifications on the same platform? Slack integrates with almost all the widely used tools such as GitHub, Jira, Google Apps, Salesforce, etc. Spinnaker also supports sending CI/CD pipeline notifications to slack. Receiving notifications on slack over email is preferred for a wide range of reasons. Team members who are on-call can be alerted that deployment is happening to service in production, and whether or not it completed successfully. In case a pipeline fails, they could simply click on the link in the notification and check for the reason behind the failure. In this blog let us look at how we can configure spinnaker to receive pipeline notifications to a Slack channel.

Prerequisites:

  • Slack Workspace
  • Access to Halyard

Instructions:

We need to have a Slack bot that can automatically post notifications in a channel and the Spinnaker shall be aware of the bot’s identity (name & token). So, in the initial few steps we will be creating an app(bot), add/invite it to a slack channel and later we will proceed to configure spinnaker to send notifications to Slack. Let’s dive into the quick and easy process to get notified over slack.

1. Visit https://api.slack.com/apps

2. Click on “Create an App”

Create App on Slack for Spinnaker CD pipeline
Create App in Slack for Spinnaker CD pipeline

3. Enter App name & Workspace to which app is to be installed

Enter the App name in Slack for the Spinnaker CD pipeline
Enter the App name in Slack for the Spinnaker CD pipeline
Select Bot in the list of features in Slack
Locate the Bots in the list of features in Slack

 4. Select Bot in the list of features and tools as shown below.  

Select Bot in the list of features in Slack
Select Bot in the list of features in Slack

5. In the “App Home” section, click on “Review Scopes to Add”  

6. Add necessary scope as shown below; it is mandatory to add chat: write to send notifications to a Slack channel

Set up the privileges in Slack for reading and writing by the App for Spinnaker
Set up the privileges in Slack for reading and writing by the App for Spinnaker

7. Click on “Install App to Workspace” which is at the top of the same screen  

8. Allow newly created app to access the Slack workspace

Allow newly created app for Spinnaker to access the Slack workspace
Allow newly created app for Spinnaker to access the Slack workspace

 9. You’ll be redirected to “OAuth & Permission”| section wherein you will see the below screen. Copy the Bot User OAuth Access Token which shall be used to add slack as notification medium to halyard configuration

Insert the Bot token for OAuth authentication
Insert the Bot token for OAuth authentication

  10. Now go back to App Home Section and check the button “Always show my Bot as Online”

“Always show my Bot as Online”
“Always show my Bot as Online”

  11. Now go to your slack workspace and add the newly created “app” to a channel to which notifications are expected to receive Here I’m creating a new channel to receive Slack notifications as shown below:

Creating a new channel to receive Slack notifications
Creating a new channel to receive Slack notifications

 12. Execute below hal commands to add slack as notification medium https://spinnaker.io/setup/features/notifications/#slack

export TOKEN_FROM_SLACK="xoxb-661456xxxxx-xxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx"
export SPINNAKER_BOT=spinnakernotifybot
hal config notification slack enable
echo $TOKEN_FROM_SLACK | hal config notification slack edit --bot-name $SPINNAKER_BOT --token
hal deploy apply

Note: Wait for the echo & deck services to be up and running   13. Now you will see a slack option in the notifications section

Set Notification using the Slack option
Set Notification using the Slack option
Custom edit Notification
Custom edit Notification    

Note: It is required to invite/add the newly created app to the channel where you wish to receive the notifications.  

14. TADAA! There you go, a notification with a link to the pipeline in the slack channel.

 

View notification with a link to the pipeline in the slack channel
View notification with a link to the pipeline in the slack channel


If you want to know more about Spinnaker or request a demonstration, please book a meeting with us.

OpsMx is a leading provider of Continuous Delivery solutions that help enterprises safely deliver software at scale and without any human intervention. We help engineering teams take the risk and manual effort out of releasing innovations at the speed of modern business. For additional information, contact us

Leave a Comment

Your email address will not be published.

You may like