openwhisk-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Lavine (Confluence)" <conflue...@apache.org>
Subject [CONF] OpenWhisk > OpenWhisk / Kubernetes proposed epics/action items/questions
Date Fri, 23 Jun 2017 19:02:15 GMT
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">

<base href="https://cwiki.apache.org/confluence"> 
<title>Message Title</title>  
<style type="text/css">@media only screen and (max-device-width: 480px) {.mobile-only
{
    width: auto !important;
    height: auto !important;
    overflow: visible !important;
    line-height: normal !important;
    font-size: inherit !important;
    mso-hide: all;
}

.desktop-only {
    display: none !important;
}

/* iPhone 3GS fix for unwanted 20px right margin */
body {
    min-width: 100% !important;
    padding: 0;
    margin: 0;
}

#center-content-table {
    max-width: none;
!important;
}

#header-pattern-container {
    padding: 10px 10px 10px 10px !important;
    line-height: 20px !important;
}

#header-avatar-image-container {
    padding-right: 8px !important;
}

#email-content-container {
    padding: 0 !important;
}

.mobile-expand {
    border-radius: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    padding-left: 26px !important;
}

.mobile-resize-text {
    font-size: 16px !important;
    line-height: 22px !important;
}

#page-title-pattern-header {
    font-size: 20px !important;
    line-height: 28px !important;
}

#page-title-pattern-icon-image-container-cell {
    padding-top: 7px !important;
}

#inline-user-pattern {
    display: block !important;
}

#inline-user-pattern-avatar {
    padding-top: 3px !important;
}

.contextual-area-pattern {
    border-bottom: 1px solid #ccc !important;
    padding: 15px 10px 0 10px !important;
}

.users-involved-pattern-column-table {
    width: 100% !important;
}

.users-involved-pattern-avatar-table-cell {
    padding: 3px 5px 5px 0 !important;
}

.users-involved-pattern-column-container {
    padding-right: 0 !important;
}

.contextual-excerpt-pattern, #users-involved-pattern {
    border: 0 !important;
}

/** Aui Typography upsized for mobile **/
#content-excerpt-pattern-container, #contextual-excerpt-pattern-text-container {
    font-size: 16px !important;
    line-height: 22px !important;
}

#content-excerpt-pattern-container h1, #contextual-excerpt-pattern-text-container h1 {
    font-size: 24px !important;
    line-height: 28px !important;
}

#content-excerpt-pattern-container h2, #contextual-excerpt-pattern-text-container h2 {
    font-size: 20px !important;
    line-height: 28px !important;
}

#content-excerpt-pattern-container h3, #contextual-excerpt-pattern-text-container h3 {
    font-size: 18px !important;
    line-height: 24px !important;
}

#content-excerpt-pattern-container h4, #contextual-excerpt-pattern-text-container h4 {
    font-size: 16px !important;
    line-height: 22px !important;
}

#content-excerpt-pattern-container h5, #contextual-excerpt-pattern-text-container h5 {
    font-size: 14px !important;
    line-height: 20px !important;
}

#content-excerpt-pattern-container h6, #contextual-excerpt-pattern-text-container h6 {
    font-size: 14px !important;
    line-height: 20px !important;
}

.user-mention {
    line-height: 18px !important;
}

/** Aui Typography end **/

/* Show appropriate footer logo on mobile, display links vertically */
#footer-pattern {
    padding: 15px 10px !important;
}

#footer-pattern-logo-desktop-container {
    padding: 0 !important;
}

#footer-pattern-logo-desktop {
    width: 0 !important;
    height: 0 !important;
}

#footer-pattern-logo-mobile {
    padding-top: 10px !important;
    width: 30px !important;
    height: 27px !important;
    display: inline !important;
}

#footer-pattern-text {
    display: block !important;
}

#footer-pattern-links-container {
    line-height: 0 !important;
}

.footer-pattern-links.mobile-resize-text,
.footer-pattern-links.mobile-resize-text,
#footer-pattern-text.mobile-resize-text,
#footer-pattern-links-container.no-footer-links {
    font-size: 14px !important;
    line-height: 20px !important;
}

.footer-link {
    display: block !important;
}

#footer-pattern-links-container table {
    display: inline-block !important;
    float: none !important;
}

#footer-pattern-links-container, #footer-pattern-text {
    text-align: center !important;
}

#footer-pattern-links {
    padding-bottom: 5px !important;
}

/** Team Calendar overrides, these should be removed when notifications are updated in Team
Calendars. For now CSS
    overrides are being used because the structure of the content can't change without rereleasing
the plugin */
.mail-calendar-container .day-header + table tr td:first-child {
    vertical-align: top !important;
    padding-top: 5px !important;
}}
@media (min-width: 900px) {#center-content-table { width: 900px; }}
@media all {#outlook a {
    padding: 0;
}

/* Force Outlook to provide a "view in browser" menu link. */
/* Prevent Webkit and Windows Mobile platforms from changing default font sizes.*/
body {
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
}

.ExternalClass {
    width: 100%;
}

/* Force Hotmail to display emails at full width */
#background-table {
    margin: 0;
    padding: 0;
    width: 100% !important;
}

/* Needed to override highlighting on date and time links in iOS */
.grey a {
    color: #707070;
    text-decoration: none;
}/* These styles are appended to the head element of a notification in order to prevent Apple
Mail and similar
   clients from underlining the due dates with a blue hyperlink */
/* a lozenge outside an inline task should always be #333, lozenges inside an inline task
should be
   colored according to their upcoming due dates, a completed task date lozenge or deleted
task date
   lozenge should always be #707070 */
.date-time-lozenge a {color: #333333; text-decoration: none; }
.inline-task-text-container .date-time-lozenge.date-upcoming a {color: #DF6F00; text-decoration:
none; }
.inline-task-text-container .date-time-lozenge.date-past a {color: #D04437; text-decoration:
none; }
.inline-task-text-container.content-deleted-color .date-time-lozenge a,
.inline-task-text-container.checked .date-time-lozenge a {
    color: #707070; text-decoration: none;
}}
</style> 
</head>
<body>
<table id="background-table" cellpadding="0" cellspacing="0" width="100%" style="border-collapse:
collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; color: #333; background-color: #f5f5f5">

<tbody> 
<tr> 
<td id="header-pattern-container" style="padding: 0px; border-collapse: collapse; padding:
10px 20px"> 
<table id="header-pattern" cellspacing="0" cellpadding="0" border="0" style="border-collapse:
collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; color: #333"> 
<tbody> 
<tr> 
<td id="header-avatar-image-container" valign="top" style="padding: 0px; border-collapse:
collapse; vertical-align: top; width: 32px; padding-right: 9px"><a href="https://cwiki.apache.org/confluence/display/~dlavine?src=mail&amp;src.mail.timestamp=1498244534962&amp;src.mail.notification=com.atlassian.confluence.plugins.confluence-content-notifications-plugin%3Apage-edited-notification&amp;src.mail.recipient=8aa980875bf24635015c9267bc8e02f6"
style="color: #3b73af; text-decoration: none"><img id="header-avatar-image" class="image_fix"
src="cid:avatar_90a04b183c95fe0103968f862f85bf76" height="32" width="32" border="0" style="border-radius:
3px; vertical-align: top"></a></td>
<td id="header-text-container" valign="middle" style="padding: 0px; border-collapse: collapse;
vertical-align: middle; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px;
mso-line-height-rule: exactly; mso-text-raise: 1px">Daniel Lavine <strong>edited</strong>
a page</td> 
</tr> 
</tbody> 
</table> </td> 
</tr> 
<!-- End Header pattern --> 
<tr> 
<td id="email-content-container" style="padding: 0px; border-collapse: collapse; padding:
0 20px"> 
<table id="email-content-table" cellspacing="0" cellpadding="0" border="0" width="100%"
style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; color: #333;
border-spacing: 0; border-collapse: separate"> 
<tbody> 
<tr> 
<td class="email-content-rounded-top mobile-expand" style="padding: 0px; border-collapse:
collapse; color: #fff; padding: 0 15px 0 16px; height: 15px; background-color: #fff; border-left:
1px solid #ccc; border-top: 1px solid #ccc; border-right: 1px solid #ccc; border-bottom: 0;
border-top-right-radius: 5px; border-top-left-radius: 5px">&nbsp;</td> 
</tr> 
<tr> 
<td class="email-content-main mobile-expand" style="padding: 0px; border-collapse: collapse;
border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-top: 0; border-bottom: 0;
padding: 0 15px 15px 16px; background-color: #fff"> 
<table id="page-title-pattern" cellspacing="0" cellpadding="0" border="0" width="100%"
style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; color: #333">

<tbody> 
<tr> 
<td id="page-title-pattern-icon-image-container" valign="top" style="padding: 0px; border-collapse:
collapse; width: 16px; vertical-align: top"> 
<table cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; mso-table-lspace:
0pt; mso-table-rspace: 0pt; color: #333"> 
<tbody> 
<tr> 
<td id="page-title-pattern-icon-image-container-cell" style="padding: 0px; border-collapse:
collapse; width: 16px; padding: 9px 8px 0px 0px; mso-text-raise: 5px; mso-line-height-rule:
exactly"><a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=70258567&amp;src=mail&amp;src.mail.timestamp=1498244534962&amp;src.mail.notification=com.atlassian.confluence.plugins.confluence-content-notifications-plugin%3Apage-edited-notification&amp;src.mail.recipient=8aa980875bf24635015c9267bc8e02f6&amp;src.mail.action=view"
title="page icon" style="vertical-align: top;; color: #3b73af; text-decoration: none"><img
style="vertical-align: top; display: block;" src="cid:page-icon" alt="page icon" title="page
icon" height="16" width="16" border="0"></a></td> 
</tr> 
</tbody> 
</table> </td>
<td style="vertical-align: top;; padding: 0px; border-collapse: collapse; padding-right:
5px; font-size: 20px; line-height: 30px; mso-line-height-rule: exactly" id="page-title-pattern-header-container"><span
id="page-title-pattern-header" style="font-family: Arial, sans-serif; padding: 0; font-size:
20px; line-height: 30px; mso-text-raise: 2px; mso-line-height-rule: exactly; vertical-align:
middle"><a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=70258567&amp;src=mail&amp;src.mail.timestamp=1498244534962&amp;src.mail.notification=com.atlassian.confluence.plugins.confluence-content-notifications-plugin%3Apage-edited-notification&amp;src.mail.recipient=8aa980875bf24635015c9267bc8e02f6&amp;src.mail.action=view"
title="OpenWhisk / Kubernetes proposed epics/action items/questions" style="color: #3b73af;
text-decoration: none">OpenWhisk / Kubernetes proposed epics/action items/questions</a></span></td>

</tr> 
</tbody> 
</table> </td> 
</tr> 
<tr> 
<td class="email-content-main mobile-expand" style="padding: 0px; border-collapse: collapse;
border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-top: 0; border-bottom: 0;
padding: 0 15px 15px 16px; background-color: #fff"> 
<table class="content-excerpt-pattern" cellspacing="0" cellpadding="0" border="0" width="100%"
style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; color: #333;
font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule:
exactly; mso-text-raise: 1px"> 
<tbody> 
<tr> 
<td class="content-excerpt-pattern-container mobile-resize-text " style="padding: 0px;
border-collapse: collapse; padding: 0 0 0 24px"> <p class="diff-context-placeholder"
style="margin: 10px 0 0 0; margin-top: 0">...</p> 
<ul class="diff-block-target" style="margin: 10px 0 0 0"> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <strong>Goal</strong><span>:
Minimize reliance on Ansible (for building in configurations)</span> </p> </li>

<ul style="margin: 10px 0 0 0"> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>Goal would be to
Dockerize as much as possible</span> </p> </li> 
</ul> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <strong>Considerations:</strong>
</p> </li> 
<ul style="margin: 10px 0 0 0"> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>Have Kube YAML
files as the primary source of configuration</span> </p> </li> 
<ul style="margin: 10px 0 0 0"> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>Utilize ENVIRONMENT
vars</span> </p> </li> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>“bake” other
configs into Docker images</span> </p> </li> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>Use shared storage
via Kubernetes volumes:</span> </p> </li> 
<ul style="margin: 10px 0 0 0"> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>3rd party volumes
are managed through YAML files (e.g NFS volume mounts or any persistent infrastructure&nbsp;mount
options. see&nbsp;<a class="external-link" href="https://kubernetes.io/docs/concepts/storage/volumes/"
rel="nofollow" style="color: #3b73af; text-decoration: none">here</a>)</span>
</p> </li> 
</ul> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>Determine if we
need to do better health checking to determine&nbsp;if we should start. Do not fail to
run a process</span> </p> </li> 
</ul> 
</ul> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <strong>Action Items:</strong>
</p> </li> 
<ul style="margin: 10px 0 0 0"> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>Nginx:</span>
</p> </li> 
<ul style="margin: 10px 0 0 0"> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>Build Nginx with
all OpenWhisk specific requirements (wsk, blackbox) pre-built into the Docker image.</span>
</p> </li> 
<li>helps generate certificates</li> 
<li>create a Kube ConfigMap or Secrets Resource from those certs and a static Nginx.conf
file. Where this nginx.conf file is specific to an environment</li> 
<li>Have yaml file(s) for the Kube Deployment and Service which uses the generated ConfigMap</li>

</ul> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>Controller:</span>
</p> </li> 
<ul style="margin: 10px 0 0 0"> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>Provide the ability
for the controller to receive updates that new invoker instances are able to be used.</span>
</p> </li> 
<ul style="margin: 10px 0 0 0"> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>This already happens
by default. Currently Kafka can receive new topics to automatically be created and used.</span>
</p> </li> 
</ul> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>Need to make sure
we use stateful sets so controller has unique names.</span> </p> </li> 
</ul> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0">Kafka:</p> 
<ul style="margin: 10px 0 0 0"> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>On the initial
startup, Kafka should register the “health” and “command” topics.</span> </p>
</li> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>Ensure that Kafka
is able to receive topic creation requests from Invoker instances</span> </p>
</li> 
</ul> </li> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>Zookeeper:</span>
</p> </li> 
<ul style="margin: 10px 0 0 0"> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>None?</span>
</p> </li> 
</ul> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>Invoker:</span>
</p> </li> 
<ul style="margin: 10px 0 0 0"> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0">Have the Invoker register its
Kafka topics by interacting with Kafka.</p> </li> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>Have the Invoker
register itself with the Controller:</span> </p> </li> 
<ul style="margin: 10px 0 0 0"> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>The Invoker must
register itself directly to the controller &lt;or&gt;</span> </p> </li>

<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>The Invoker registers
all key-value pair information about itself into Consul</span> </p> </li>

</ul> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>Have only one Invoker
instance be deployed to a Kube node and ensure that no other Kube Pods run alongside it as
well</span> </p> </li> 
</ul> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>Consul:</span>
</p> </li> 
<ul style="margin: 10px 0 0 0"> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>Remove consul from
part of the OpenWhisk Deployment.</span> </p> </li> 
</ul> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>CouchDB:</span>
</p> </li> 
<ul style="margin: 10px 0 0 0"> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>Goal</span><span>:</span><span>
Come up with a standardized way to setup and configure CouchDB as OW’s default document
store.</span> </p> </li> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>Considerations</span><span>:</span>
</p> </li> 
<ul style="margin: 10px 0 0 0"> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>This component
is somewhat unique on the OpenWhisk deployment strategy as it only has to be done once and
does not have rolling updates</span> </p> </li> 
</ul> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>Questions</span><span>:</span>
</p> </li> 
<ul style="margin: 10px 0 0 0"> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>How can I configure
CouchDB to with seed information for OpenWhisk?</span> </p> </li> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>Can we better leverage
public Docker image by wrapping it for our needs (config)?</span> </p> </li>

<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>How can I have
the OpenWhisk components talk to CouchDB?</span> </p> </li> 
</ul> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>Assumptions</span><span>:</span>
</p> </li> 
<ul style="margin: 10px 0 0 0"> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>Over time we are
working towards a “pluggable” document store approach, but this is beyond short-term scope.
Despite this approach we still need to “Dockerize” our init/config as the “default”.</span>
</p> </li> 
</ul> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span><span class="diff-html-added"
id="added-diff-0" style="font-size: 100%; background-color: #ddfade;">Implementation:</span></span>
</p> 
<ul style="margin: 10px 0 0 0"> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span class="diff-html-added"
style="font-size: 100%; background-color: #ddfade;">Prebuilt couch DB then init script
that edits the authentication for unique credentials. Also edit the entries within the database
with unique credentials</span> </p> </li> 
</ul> </li> 
</ul> 
</ul> 
</ul> <p class="diff-block-context" style="margin: 10px 0 0 0">&nbsp;</p>
<p class="diff-block-context" style="margin: 10px 0 0 0"> <strong><u><span
style="color: rgb(0,0,0);">Medium Term Epics</span></u></strong> </p>

<ul class="diff-block-context" style="margin: 10px 0 0 0"> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>E.g., Work items
/ issues (by component) that improve component’s Clustering or HA enablement</span>
</p> </li> 
<li> <p style="margin: 10px 0 0 0; margin-top: 0"> <span>E.g., Work items
that allow for “pluggability”</span> </p> </li> 
</ul> <p class="diff-context-placeholder" style="margin: 10px 0 0 0; margin-top:
0">...</p> </td> 
</tr> 
</tbody> 
</table> </td> 
</tr> 
<tr> 
<td class="email-content-main mobile-expand action-padding last-row-padding" style="padding:
0px; border-collapse: collapse; border-left: 1px solid #ccc; border-right: 1px solid #ccc;
border-top: 0; border-bottom: 0; padding: 0 15px 15px 16px; background-color: #fff; padding-bottom:
10px; padding-bottom: 10px"> 
<table id="actions-pattern" cellspacing="0" cellpadding="0" border="0" width="100%" style="border-collapse:
collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; color: #333; font-family: Arial, sans-serif;
font-size: 14px; line-height: 20px; mso-line-height-rule: exactly; mso-text-raise: 1px">

<tbody> 
<tr> 
<td id="actions-pattern-container" valign="middle" style="padding: 0px; border-collapse:
collapse; padding: 15px 0 0 24px; vertical-align: middle"> 
<table align="left" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace:
0pt; color: #333"> 
<tbody> 
<tr> 
<td class="actions-pattern-action-icon-container" style="padding: 0px; border-collapse:
collapse; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule:
exactly; mso-text-raise: 0px; vertical-align: middle"><a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=70258567&amp;src=mail&amp;src.mail.timestamp=1498244534962&amp;src.mail.notification=com.atlassian.confluence.plugins.confluence-content-notifications-plugin%3Apage-edited-notification&amp;src.mail.recipient=8aa980875bf24635015c9267bc8e02f6&amp;src.mail.action=view"
title="View page Icon" style="color: #3b73af; text-decoration: none"><img class="actions-pattern-action-icon-image"
height="16" width="16" border="0" title="View page Icon" src="cid:com.atlassian.confluence.plugins.confluence-email-resources_view-page-email-adg-footer-item_icon"
alt="View page Icon" style="vertical-align: middle"></a></td>
<td class="actions-pattern-action-text-container" style="padding: 0px; border-collapse:
collapse; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule:
exactly; mso-text-raise: 4px; padding-left: 5px; white-space: nowrap"><a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=70258567&amp;src=mail&amp;src.mail.timestamp=1498244534962&amp;src.mail.notification=com.atlassian.confluence.plugins.confluence-content-notifications-plugin%3Apage-edited-notification&amp;src.mail.recipient=8aa980875bf24635015c9267bc8e02f6&amp;src.mail.action=view"
title="View page" style="color: #3b73af; text-decoration: none">View page</a></td>
<td class="actions-pattern-action-bull" style="padding: 0px; border-collapse: collapse;
font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule:
exactly; mso-text-raise: 4px; color: #999; padding: 0 5px">•</td> 
</tr> 
</tbody> 
</table> 
<table style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt;
color: #333"> 
<tbody> 
<tr> 
<td class="actions-pattern-action-icon-container" style="padding: 0px; border-collapse:
collapse; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule:
exactly; mso-text-raise: 0px; vertical-align: middle"><a href="https://cwiki.apache.org/confluence/plugins/likes/like.action?contentId=70258567&amp;src=mail&amp;src.mail.timestamp=1498244534962&amp;src.mail.notification=com.atlassian.confluence.plugins.confluence-content-notifications-plugin%3Apage-edited-notification&amp;src.mail.recipient=8aa980875bf24635015c9267bc8e02f6&amp;src.mail.action=like"
title="Like Icon" style="color: #3b73af; text-decoration: none"><img class="actions-pattern-action-icon-image"
height="16" width="16" border="0" title="Like Icon" src="cid:com.atlassian.confluence.plugins.confluence-like_view-email-adg-content-item_icon"
alt="Like Icon" style="vertical-align: middle"></a></td>
<td class="actions-pattern-action-text-container" style="padding: 0px; border-collapse:
collapse; font-family: Arial, sans-serif; font-size: 14px; line-height: 20px; mso-line-height-rule:
exactly; mso-text-raise: 4px; padding-left: 5px; white-space: nowrap"><a href="https://cwiki.apache.org/confluence/plugins/likes/like.action?contentId=70258567&amp;src=mail&amp;src.mail.timestamp=1498244534962&amp;src.mail.notification=com.atlassian.confluence.plugins.confluence-content-notifications-plugin%3Apage-edited-notification&amp;src.mail.recipient=8aa980875bf24635015c9267bc8e02f6&amp;src.mail.action=like"
title="Like" style="color: #3b73af; text-decoration: none">Like</a></td> 
</tr> 
</tbody> 
</table> </td> 
</tr> 
</tbody> 
</table> </td> 
</tr> 
<tr> 
<td class="email-content-rounded-bottom mobile-expand" style="padding: 0px; border-collapse:
collapse; color: #fff; height: 5px; line-height: 5px; padding: 0 15px 0 16px; background-color:
#fff; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; border-top: 0; border-left:
1px solid #ccc; border-bottom: 1px solid #ccc; border-right: 1px solid #ccc; mso-line-height-rule:
exactly">&nbsp;</td> 
</tr> 
</tbody> 
</table> </td> 
</tr> 
<tr> 
<td id="footer-pattern" style="padding: 0px; border-collapse: collapse; padding: 12px 20px">

<table id="footer-pattern-container" cellspacing="0" cellpadding="0" border="0" width="100%"
style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; color: #333">

<tbody> 
<tr> 
<td id="footer-pattern-links-container" width="100%" style="padding: 0px; border-collapse:
collapse; color: #999; font-size: 12px; line-height: 18px; font-family: Arial, sans-serif;
mso-line-height-rule: exactly; mso-text-raise: 2px"> 
<table align="left" style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace:
0pt; color: #333; font-size: 12px; line-height: 18px; font-family: Arial, sans-serif; mso-line-height-rule:
exactly; mso-text-raise: 2px"> 
<tbody> 
<tr> 
<td class="footer-pattern-links mobile-resize-text" style="padding: 0px; border-collapse:
collapse"><a href="https://cwiki.apache.org/confluence/users/removespacenotification.action?spaceKey=OPENWHISK&amp;src=mail&amp;src.mail.timestamp=1498244534962&amp;src.mail.notification=com.atlassian.confluence.plugins.confluence-content-notifications-plugin%3Apage-edited-notification&amp;src.mail.recipient=8aa980875bf24635015c9267bc8e02f6&amp;src.mail.action=stop-watching"
title="" style="color: #3b73af; text-decoration: none">Stop watching space</a></td>
<td class="footer-pattern-links-bull" style="padding: 0px; border-collapse: collapse; padding:
0 5px; color: #999">•</td> 
</tr> 
</tbody> 
</table> 
<table style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt;
color: #333; font-size: 12px; line-height: 18px; font-family: Arial, sans-serif; mso-line-height-rule:
exactly; mso-text-raise: 2px"> 
<tbody> 
<tr> 
<td class="footer-pattern-links mobile-resize-text" style="padding: 0px; border-collapse:
collapse"><a href="https://cwiki.apache.org/confluence/users/editmyemailsettings.action?src=mail&amp;src.mail.timestamp=1498244534962&amp;src.mail.notification=com.atlassian.confluence.plugins.confluence-content-notifications-plugin%3Apage-edited-notification&amp;src.mail.recipient=8aa980875bf24635015c9267bc8e02f6&amp;src.mail.action=manage"
title="" style="color: #3b73af; text-decoration: none">Manage notifications</a></td>

</tr> 
</tbody> 
</table> </td>
<td id="footer-pattern-logo-desktop-container" rowspan="2" valign="top" style="padding:
0px; border-collapse: collapse; padding-left: 20px; vertical-align: top"> 
<table style="border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt;
color: #333"> 
<tbody> 
<tr> 
<td id="footer-pattern-logo-desktop-padding" style="padding: 0px; border-collapse: collapse;
padding-top: 3px"><img id="footer-pattern-logo-desktop" src="cid:footer-desktop-logo"
alt="Confluence logo big" title="Confluence logo big" width="132" height="20" class="image_fix"></td>

</tr> 
</tbody> 
</table> </td> 
</tr> 
<tr> 
<td id="footer-pattern-text" class="mobile-resize-text" width="100%" style="padding: 0px;
border-collapse: collapse; color: #999; font-size: 12px; line-height: 18px; font-family: Arial,
sans-serif; mso-line-height-rule: exactly; mso-text-raise: 2px; display: none">This message
was sent by Atlassian Confluence 5.8.17<br> <img id="footer-pattern-logo-mobile"
src="cid:footer-mobile-logo" alt="" title="" width="0" height="0" style="display: none; mso-hide:
all"></td> 
</tr> 
</tbody> 
</table> </td> 
</tr> 
</tbody> 
</table> 
<table id="sealed-section" border="0" cellpadding="0" cellspacing="0" width="0" style="border-collapse:
collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; color: #333; display: none"> 
<tbody> 
<tr> 
<td style="padding: 0px; border-collapse: collapse; border: 0; font-size: 0px; line-height:
0; mso-line-height-rule: exactly"></td> 
</tr> 
</tbody> 
</table>
</body>
</html>
Mime
View raw message