diff --git a/Makefile b/Makefile
index e0bed8b8b244090a437fbd2853ab7422d1b4d03c..094a27674c45bbffa8eced0786082290efc738c7 100644
--- a/Makefile
+++ b/Makefile
@@ -43,10 +43,10 @@ SOURCES:=$(shell find . -name "*.go")
 MAKEDIR:=$(strip $(shell dirname "$(realpath $(lastword $(MAKEFILE_LIST)))"))
 
 # Keep in sync with upup/models/cloudup/resources/addons/dns-controller/
-DNS_CONTROLLER_TAG=1.8.0-beta.2
+DNS_CONTROLLER_TAG=1.8.0
 
-KOPS_RELEASE_VERSION = 1.8.0-beta.2
-KOPS_CI_VERSION      = 1.8.0-beta.3
+KOPS_RELEASE_VERSION = 1.8.0
+KOPS_CI_VERSION      = 1.8.1-beta.1
 
 # kops local location
 KOPS                 = ${LOCAL}/kops
diff --git a/channels/alpha b/channels/alpha
index db132e33eeaa370c829a4bc8d7a02be2de9b780a..26c11a9b8e36e834fd4f232a2b1d172c87d4c8d1 100644
--- a/channels/alpha
+++ b/channels/alpha
@@ -48,7 +48,7 @@ spec:
     requiredVersion: 1.4.2
   kopsVersions:
   - range: ">=1.8.0-alpha.1"
-    recommendedVersion: 1.8.0-beta.2
+    recommendedVersion: 1.8.0
     #requiredVersion: 1.8.0
     kubernetesVersion: 1.8.4
   - range: ">=1.7.0-alpha.1"
diff --git a/cmd/kops/BUILD.bazel b/cmd/kops/BUILD.bazel
index dd721b9daae59e0c916d8f09464742c2d01d5b40..05ee9f78cdabe59078f5ae92a09e06a2f9e88562 100644
--- a/cmd/kops/BUILD.bazel
+++ b/cmd/kops/BUILD.bazel
@@ -120,7 +120,7 @@ go_binary(
     library = ":go_default_library",
     visibility = ["//visibility:public"],
     x_defs = {
-        "k8s.io/kops.Version": "1.8.0-beta.2",  # keep
+        "k8s.io/kops.Version": "1.8.0",  # keep
         "k8s.io/kops.GitVersion": "{BUILD_SCM_REVISION}",  # keep
     },
 )
diff --git a/upup/models/cloudup/resources/addons/dns-controller.addons.k8s.io/k8s-1.6.yaml.template b/upup/models/cloudup/resources/addons/dns-controller.addons.k8s.io/k8s-1.6.yaml.template
index fd909ffc9935dd1befa431414a08d8fdf471584c..771311ceb85b3da7b5d0f47c488023838ad93286 100644
--- a/upup/models/cloudup/resources/addons/dns-controller.addons.k8s.io/k8s-1.6.yaml.template
+++ b/upup/models/cloudup/resources/addons/dns-controller.addons.k8s.io/k8s-1.6.yaml.template
@@ -6,7 +6,7 @@ metadata:
   labels:
     k8s-addon: dns-controller.addons.k8s.io
     k8s-app: dns-controller
-    version: v1.8.0-beta.2
+    version: v1.8.0
 spec:
   replicas: 1
   selector:
@@ -17,7 +17,7 @@ spec:
       labels:
         k8s-addon: dns-controller.addons.k8s.io
         k8s-app: dns-controller
-        version: v1.8.0-beta.2
+        version: v1.8.0
       annotations:
         scheduler.alpha.kubernetes.io/critical-pod: ''
         # For 1.6, we keep the old tolerations in case of a downgrade to 1.5
@@ -33,7 +33,7 @@ spec:
       serviceAccount: dns-controller
       containers:
       - name: dns-controller
-        image: kope/dns-controller:1.8.0-beta.2
+        image: kope/dns-controller:1.8.0
         command:
 {{ range $arg := DnsControllerArgv }}
         - "{{ $arg }}"
diff --git a/upup/models/cloudup/resources/addons/dns-controller.addons.k8s.io/pre-k8s-1.6.yaml.template b/upup/models/cloudup/resources/addons/dns-controller.addons.k8s.io/pre-k8s-1.6.yaml.template
index adf0da3db6cd750ae0ae929df374c066d01b2f42..1445b4a032410a232fab64987224ddfe311594a5 100644
--- a/upup/models/cloudup/resources/addons/dns-controller.addons.k8s.io/pre-k8s-1.6.yaml.template
+++ b/upup/models/cloudup/resources/addons/dns-controller.addons.k8s.io/pre-k8s-1.6.yaml.template
@@ -6,7 +6,7 @@ metadata:
   labels:
     k8s-addon: dns-controller.addons.k8s.io
     k8s-app: dns-controller
-    version: v1.8.0-beta.2
+    version: v1.8.0
 spec:
   replicas: 1
   selector:
@@ -17,7 +17,7 @@ spec:
       labels:
         k8s-addon: dns-controller.addons.k8s.io
         k8s-app: dns-controller
-        version: v1.8.0-beta.2
+        version: v1.8.0
       annotations:
         scheduler.alpha.kubernetes.io/critical-pod: ''
         scheduler.alpha.kubernetes.io/tolerations: '[{"key": "dedicated", "value": "master"}]'
@@ -28,7 +28,7 @@ spec:
       hostNetwork: true
       containers:
       - name: dns-controller
-        image: kope/dns-controller:1.8.0-beta.2
+        image: kope/dns-controller:1.8.0
         command:
 {{ range $arg := DnsControllerArgv }}
         - "{{ $arg }}"
diff --git a/upup/pkg/fi/cloudup/bootstrapchannelbuilder.go b/upup/pkg/fi/cloudup/bootstrapchannelbuilder.go
index 12af8bd0a9f2af4408e54d40ee33123c84ad2eb6..e5c8947df41e84b41e462ab06d11681cff7242c4 100644
--- a/upup/pkg/fi/cloudup/bootstrapchannelbuilder.go
+++ b/upup/pkg/fi/cloudup/bootstrapchannelbuilder.go
@@ -191,7 +191,7 @@ func (b *BootstrapChannelBuilder) buildManifest() (*channelsapi.Addons, map[stri
 	if externalDNS == nil || !externalDNS.Disable {
 		{
 			key := "dns-controller.addons.k8s.io"
-			version := "1.8.0-beta.2"
+			version := "1.8.0"
 
 			{
 				location := key + "/pre-k8s-1.6.yaml"
diff --git a/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/kopeio-vxlan/manifest.yaml b/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/kopeio-vxlan/manifest.yaml
index f97bcad6d8549d0a7e121039267709ac53245ad3..7d939bb97c89c913a1af4fe91f3f57e42696c96a 100644
--- a/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/kopeio-vxlan/manifest.yaml
+++ b/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/kopeio-vxlan/manifest.yaml
@@ -41,14 +41,14 @@ spec:
     name: dns-controller.addons.k8s.io
     selector:
       k8s-addon: dns-controller.addons.k8s.io
-    version: 1.8.0-beta.2
+    version: 1.8.0
   - id: k8s-1.6
     kubernetesVersion: '>=1.6.0'
     manifest: dns-controller.addons.k8s.io/k8s-1.6.yaml
     name: dns-controller.addons.k8s.io
     selector:
       k8s-addon: dns-controller.addons.k8s.io
-    version: 1.8.0-beta.2
+    version: 1.8.0
   - id: v1.7.0
     kubernetesVersion: '>=1.7.0'
     manifest: storage-aws.addons.k8s.io/v1.7.0.yaml
diff --git a/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/simple/manifest.yaml b/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/simple/manifest.yaml
index 6546647a394a64ef892db5e6045e176eed270bab..50beec1beb0afa2c5a6670b3fe9ce2bf9ccb7dc6 100644
--- a/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/simple/manifest.yaml
+++ b/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/simple/manifest.yaml
@@ -41,14 +41,14 @@ spec:
     name: dns-controller.addons.k8s.io
     selector:
       k8s-addon: dns-controller.addons.k8s.io
-    version: 1.8.0-beta.2
+    version: 1.8.0
   - id: k8s-1.6
     kubernetesVersion: '>=1.6.0'
     manifest: dns-controller.addons.k8s.io/k8s-1.6.yaml
     name: dns-controller.addons.k8s.io
     selector:
       k8s-addon: dns-controller.addons.k8s.io
-    version: 1.8.0-beta.2
+    version: 1.8.0
   - id: v1.7.0
     kubernetesVersion: '>=1.7.0'
     manifest: storage-aws.addons.k8s.io/v1.7.0.yaml
diff --git a/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/weave/manifest.yaml b/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/weave/manifest.yaml
index 6c61a2a638a180c1456a0e9db9aace2bd4ad8d19..8870186b0d74b4d90c7536a10a523d5ba818c23f 100644
--- a/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/weave/manifest.yaml
+++ b/upup/pkg/fi/cloudup/tests/bootstrapchannelbuilder/weave/manifest.yaml
@@ -41,14 +41,14 @@ spec:
     name: dns-controller.addons.k8s.io
     selector:
       k8s-addon: dns-controller.addons.k8s.io
-    version: 1.8.0-beta.2
+    version: 1.8.0
   - id: k8s-1.6
     kubernetesVersion: '>=1.6.0'
     manifest: dns-controller.addons.k8s.io/k8s-1.6.yaml
     name: dns-controller.addons.k8s.io
     selector:
       k8s-addon: dns-controller.addons.k8s.io
-    version: 1.8.0-beta.2
+    version: 1.8.0
   - id: v1.7.0
     kubernetesVersion: '>=1.7.0'
     manifest: storage-aws.addons.k8s.io/v1.7.0.yaml