diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..a61a44f
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,23 @@
+<!--
+#
+# 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.
+#
+-->
+
+# Changelog
+
+## 1.0.0
+  * First Apache Release
diff --git a/NOTICE.txt b/NOTICE.txt
index e90bf96..c5c7b84 100644
--- a/NOTICE.txt
+++ b/NOTICE.txt
@@ -1,4 +1,4 @@
-Apache OpenWhisk
+Apache OpenWhisk Deploy Kubernetes
 Copyright 2016-2020 The Apache Software Foundation
 
 This product includes software developed at
diff --git a/helm/openwhisk/Chart.yaml b/helm/openwhisk/Chart.yaml
index e4e5c91..10894c9 100644
--- a/helm/openwhisk/Chart.yaml
+++ b/helm/openwhisk/Chart.yaml
@@ -18,7 +18,7 @@
 apiVersion: v2
 type: application
 name: openwhisk
-version: 0.2.7
+version: 1.0.0
 home: https://openwhisk.apache.org
 description: Apache OpenWhisk is an open source serverless cloud platform
 icon: https://raw.githubusercontent.com/apache/openwhisk/682eb5b62ee6ba8017ab54226c2ace3637f4f1ec/docs/images/whisk_icon_full-color_with_tm_64x64-300dpi.png
diff --git a/helm/openwhisk/README.md b/helm/openwhisk/README.md
index b45cb6f..1e6e867 100644
--- a/helm/openwhisk/README.md
+++ b/helm/openwhisk/README.md
@@ -25,7 +25,7 @@
 
 The [Apache OpenWhisk](https://openwhisk.apache.org/) serverless platform supports a programming model in which developers write functional logic (called Actions), in any supported programming language, that can be dynamically scheduled and run in response to associated events (via Triggers) from external sources (Feeds) or from HTTP requests.
 
-This chart will deploy the core OpenWhisk platform to your Kubernetes cluster.  In its default configuration, the chart enables runtime support for executing actions written in NodeJS, Python, Swift, Java, PHP, Ruby, Go, and "blackbox" docker containers.  The main components of the OpenWhisk platform are a front-end that provides a REST API to the user and the `wsk` CLI, a CouchDB instance that stores user and system data, and a control plane that is responsible for scheduling incoming invocations of user actions onto dedicated Kubernetes worker nodes that have been labeled as "invoker nodes".
+This chart will deploy the core OpenWhisk platform to your Kubernetes cluster.  In its default configuration, the chart enables runtime support for executing actions written in NodeJS, Python, Swift, Java, PHP, Ruby, Go, Rust, .Net, and "blackbox" docker containers.  The main components of the OpenWhisk platform are a front-end that provides a REST API to the user and the `wsk` CLI, a CouchDB instance that stores user and system data, and a control plane that is responsible for scheduling incoming invocations of user actions onto dedicated Kubernetes worker nodes that have been labeled as "invoker nodes".
 
 Further documentation of the OpenWhisk system architecture, programming model, tutorials, and sample programs can all be found at on the [Apache OpenWhisk project website](https://openwhisk.apache.org/).
 
@@ -37,9 +37,8 @@
 * Internal Services
    * apigateway, controller, couchdb, kafka, nginx, redis, zookeeper
 * OpenWhisk control plane Pods:
-   * DaemonSet: invoker (on all nodes with label `openwhisk-role=invoker`)
    * Deployments: apigateway, couchdb, nginx, redis
-   * SatefulSets: controller, kafka, zookeeper
+   * SatefulSets: controller, invoker, kafka, zookeeper
 * Persistent Volume Claims
    * couchdb-pvc
    * kafka-pvc
@@ -49,7 +48,7 @@
 
 All user interaction with OpenWhisk uses the REST API exposed by the nginx service via its NodePort ingress.
 
-The chart requires one or more Kubernetes worker nodes to be designated to be used by OpenWhisk's invokers to execute user actions.  These nodes are designated by being labeled with `openwhisk-role=invoker` (see below for the `kubectl` command).  In its default configuration, the invokers will schedule the containers to execute the user actions on these nodes *without* interacting with the Kubernetes scheduler.
+The chart requires one or more Kubernetes worker nodes to be designated to be used by OpenWhisk's invokers to execute user actions.  These nodes are designated by being labeled with `openwhisk-role=invoker` (see below for the `kubectl` command).
 
 ## Resources Required
 
@@ -145,12 +144,12 @@
 To install the chart using helm cli:
 
 ```bash
-$ helm install [--tls] openwhisk --namespace <my-namespace> --name <my-release> --set whisk.ingress.apiHostName=<cluster-ip-address>
+$ helm install <my-release> openwhisk --namespace <my-namespace> --create-namespace --set whisk.ingress.apiHostName=<cluster-ip-address>
 ```
 
 The command deploys OpenWhisk on the Kubernetes cluster in the default configuration.  The [configuration](#configuration) section lists the parameters that can be configured during installation.
 
-You can use the command ```helm status <my-release> [--tls]``` to get a summary of the various Kubernetes artifacts that make up your OpenWhisk deployment. Once the ```<my-release>-install-packages``` Pod is in the Completed state, your OpenWhisk deployment is ready to be used.
+You can use the command ```helm status <my-release>``` to get a summary of the various Kubernetes artifacts that make up your OpenWhisk deployment. Once the ```<my-release>-install-packages``` Pod is in the Completed state, your OpenWhisk deployment is ready to be used.
 
 ### Configuration
 
@@ -160,7 +159,7 @@
 
 To verify your deployment was successful, simply run:
 ```bash
-helm test <my-release> [--tls] --cleanup
+helm test <my-release> --cleanup
 ```
 
 ## Uninstalling the Chart
@@ -168,7 +167,7 @@
 To uninstall/delete the deployment:
 
 ```bash
-$ helm delete <my-release> --purge [--tls]
+$ helm delete <my-release>
 ```
 
 The command removes all the Kubernetes components associated with the chart and deletes the release.
diff --git a/helm/openwhisk/templates/NOTES.txt b/helm/openwhisk/templates/NOTES.txt
index 6b6f5b0..b8bb560 100644
--- a/helm/openwhisk/templates/NOTES.txt
+++ b/helm/openwhisk/templates/NOTES.txt
@@ -1,7 +1,21 @@
-{{/* Licensed to the Apache Software Foundation (ASF) under one or more contributor */}}
-{{/* license agreements; and to You under the Apache License, Version 2.0. */}}
+{{/*
+  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.
+*/}}
 Apache OpenWhisk
-Copyright 2016-2018 The Apache Software Foundation
+Copyright 2016-2020 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
@@ -23,11 +37,11 @@
 
 To learn more about the release, try:
 
-  $ helm status {{ .Release.Name }} [--tls]
-  $ helm get {{ .Release.Name }} [--tls]
+  $ helm status {{ .Release.Name }}
+  $ helm get {{ .Release.Name }}
 
 Once the '{{ .Release.Name }}-install-packages' Pod is in the Completed state, your OpenWhisk deployment is ready to be used.
 
 Once the deployment is ready, you can verify it using: 
 
-  $ helm test {{ .Release.Name }} [--tls] --cleanup
+  $ helm test {{ .Release.Name }} --cleanup
