diff --git a/jsonnet/kube-prometheus/alertmanager/alertmanager.libsonnet b/jsonnet/kube-prometheus/alertmanager/alertmanager.libsonnet
index ad3fb0e89bcb4271364107fa3d90313cce76a994..91cf05f17ee5f52418f1ae96b08d779a6e573c27 100644
--- a/jsonnet/kube-prometheus/alertmanager/alertmanager.libsonnet
+++ b/jsonnet/kube-prometheus/alertmanager/alertmanager.libsonnet
@@ -47,7 +47,11 @@ local k = import 'ksonnet/ksonnet.beta.3/k.libsonnet';
     secret:
       local secret = k.core.v1.secret;
 
-      secret.new('alertmanager-' + $._config.alertmanager.name, { 'alertmanager.yaml': std.base64(std.manifestYamlDoc($._config.alertmanager.config)) }) +
+      if std.type($._config.alertmanager.config) == "object" then
+        secret.new('alertmanager-' + $._config.alertmanager.name, { 'alertmanager.yaml': std.base64(std.manifestYamlDoc($._config.alertmanager.config)) })
+      else
+        secret.new('alertmanager-' + $._config.alertmanager.name, { 'alertmanager.yaml': std.base64($._config.alertmanager.config) })
+      + 
       secret.mixin.metadata.withNamespace($._config.namespace),
 
     serviceAccount: