blob: 13cf376362a35e297b4733f82939abe6a521b7d0 [file] [log] [blame]
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Deployment using this manifest file creates following OpenWhisk components:
# Package: openwhisk-slack
# Package: openwhisk-alarms
# Action: send-message
# Sequence: post_message_slack_sequence
# Trigger: $TRIGGER_NAME
# Rule: $RULE_NAME
# This manifest file reads following env. variables:
# SLACK_WEBHOOK_URL
# ALARM_CRON
# PACKAGE_NAME
# TRIGGER_NAME
# RULE_NAME
project:
namespace: _
inputs:
PACKAGE_NAME:
type: string
description: "Slack User Name"
required: false
value: periodic-slack-reminder
SLACK_WEBHOOK_URL:
type: string
description: "Slack Webhook URL"
required: true
value: $SLACK_WEBHOOK_URL
ALARM_CRON:
type: string
description: "Alarm Cron Frequency"
required: true
# every day 8 AM
value: "0 8 * * *"
TRIGGER_NAME:
type: string
description: "Trigger Name"
required: false
value: "periodic-slack-reminder-trgr"
RULE_NAME:
type: string
description: "Rule Name"
required: false
value: "post-to-slack-every-day"
packages:
$PACKAGE_NAME:
dependencies:
# binding alarms package named openwhisk-alarms and slack package openwhisk-slack
openwhisk-slack:
location: /whisk.system/slack
inputs:
url: $SLACK_WEBHOOK_URL
openwhisk-alarms:
location: /whisk.system/alarms
inputs:
cron: $ALARM_CRON
triggers:
# Creating trigger to fire events on alarm schedule
$TRIGGER_NAME:
feed: openwhisk-alarms/alarm
inputs:
events: 'push'
actions:
# Creating action that is sending message to slack post action
send-message:
code: |
function main(params) {
const message = 'Your scrum is starting now. Time to find your team!';
return { text: message };
}
exports.main = main;
runtime: nodejs:default
sequences:
# Creating sequence to connect the send-message action with the slack post action
post_message_slack_sequence:
actions: send-message, openwhisk-slack/post
rules:
# Creating rule that maps alarm trigger to sequence
$RULE_NAME:
trigger: $TRIGGER_NAME
action: post_message_slack_sequence