Repository: kubernetes-sigs/external-dns (language: go)

Issue:
Helm documentation includes no examples for providers
**What happened**: I tried to deploy external-dns via the provided helm chart

**What you expected to happen**: Setting provider values should result in them being set in the container. Properly documented examples should be provided.

Currently the documentation ends up in a loop on itself. The documentation on the main helm README shows only the generic 'provider' value option with no sub options. It then links to the non-helm version of the external-dns deployment when making any references on instructions on how to set up a provider. The non-helm documentation does not provide any insight into how to set the helm spec: values.yaml per provider.

Additionally after looking through most of the helm chart templates, I don't even see a proper area where provider specific spec can be included, the only portion I see supported at all at the moment is for the provider name to be set. This does not provide anywhere near a simple deployment process even if documentation were provided. At minimum the helm values.yaml should not force the entire extravars to provide provider api keys and other sensitive data when there are much safer ways to do this (secrets etc).

**How to reproduce it (as minimally and precisely as possible)**:
spec:
  provider:
    name: cloudflare
    email: example@example.com
    apiKey: <myapikey>

**Anything else we need to know?**:

**Environment**:
- External-DNS version (use `external-dns --version`): 1.14.4
- DNS provider: cloudflare
- Others:



Discussion / hints:
After digging through other issue tickets here I was able to piece together a proper values.yaml for cloudflare, however my initial bug/issue still stands in that there is no formal documentation around this, only what can be gleaned from others/issues.

```
provider: 
  name: cloudflare
env:
  - name: CF_API_KEY
    valueFrom:
      secretKeyRef:
        name: cloudflare-api-key
        key: apiKey
  - name: CF_API_EMAIL
    value: "example@example.com"
```

Hey, can I take this? 

/assign omerap12

Fix patch:
diff --git a/charts/external-dns/README.md b/charts/external-dns/README.md
index a94215f64b..f4680f3d67 100644
--- a/charts/external-dns/README.md
+++ b/charts/external-dns/README.md
@@ -41,6 +41,18 @@ See [documentation](https://kubernetes-sigs.github.io/external-dns/#new-provider
 |------------------------|------------|
 | `webhook`              | ✅         |
 
+### Other Providers
+
+For set up for a specific provider using the Helm chart, see the following links:
+- [AWS](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/aws.md#using-helm-with-oidc)
+- [akamai-edgedns](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/akamai-edgedns.md#using-helm)
+- [cloudflare](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/cloudflare.md#using-helm)
+- [digitalocean](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/digitalocean.md#using-helm)
+- [godaddy](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/godaddy.md#using-helm)
+- [ns1](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/ns1.md#using-helm)
+- [plural](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/plural.md#using-helm)
+- [vultr](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/vultr.md#using-helm)
+
 ## Namespaced Scoped Installation
 
 external-dns supports running on a namespaced only scope, too.
diff --git a/charts/external-dns/README.md.gotmpl b/charts/external-dns/README.md.gotmpl
index 675835de8f..d99f0968dd 100644
--- a/charts/external-dns/README.md.gotmpl
+++ b/charts/external-dns/README.md.gotmpl
@@ -36,6 +36,18 @@ See [documentation](https://kubernetes-sigs.github.io/external-dns/#new-provider
 |------------------------|------------|
 | `webhook`              | ✅         |
 
+### Other Providers
+
+For set up for a specific provider using the Helm chart, see the following links:
+- [AWS](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/aws.md#using-helm-with-oidc)
+- [akamai-edgedns](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/akamai-edgedns.md#using-helm)
+- [cloudflare](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/cloudflare.md#using-helm)
+- [digitalocean](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/digitalocean.md#using-helm)
+- [godaddy](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/godaddy.md#using-helm)
+- [ns1](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/ns1.md#using-helm)
+- [plural](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/plural.md#using-helm)
+- [vultr](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/vultr.md#using-helm)
+
 ## Namespaced Scoped Installation
 
 external-dns supports running on a namespaced only scope, too.
diff --git a/docs/tutorials/akamai-edgedns.md b/docs/tutorials/akamai-edgedns.md
index 7ec153a6fe..fc435c2fc6 100644
--- a/docs/tutorials/akamai-edgedns.md
+++ b/docs/tutorials/akamai-edgedns.md
@@ -34,7 +34,54 @@ In addition to specifying auth credentials individually, an Akamai Edgegrid .edg
 
 An operational External-DNS deployment consists of an External-DNS container and service. The following sections demonstrate the ConfigMap objects that would make up an example functional external DNS kubernetes configuration utilizing NGINX as the service.
 
-Connect your `kubectl` client to the External-DNS cluster, and then apply one of the following manifest files:
+Connect your `kubectl` client to the External-DNS cluster.
+
+Begin by creating a Kubernetes secret to securely store your  Akamai Edge DNS Access Tokens. This key will enable ExternalDNS to authenticate with Akamai Edge DNS:
+
+```shell
+kubectl create secret generic AKAMAI-DNS --from-literal=EXTERNAL_DNS_AKAMAI_SERVICECONSUMERDOMAIN=YOUR_SERVICECONSUMERDOMAIN --from-literal=EXTERNAL_DNS_AKAMAI_CLIENT_TOKEN=YOUR_CLIENT_TOKEN --from-literal=EXTERNAL_DNS_AKAMAI_CLIENT_SECRET=YOUR_CLIENT_SECRET --from-literal=EXTERNAL_DNS_AKAMAI_ACCESS_TOKEN=YOUR_ACCESS_TOKEN
+```
+
+Ensure to replace YOUR_SERVICECONSUMERDOMAIN, EXTERNAL_DNS_AKAMAI_CLIENT_TOKEN, YOUR_CLIENT_SECRET and YOUR_ACCESS_TOKEN with your actual Akamai Edge DNS API keys.
+
+Then apply one of the following manifests file to deploy ExternalDNS.
+
+### Using Helm
+
+Create a values.yaml file to configure ExternalDNS to use Akamai Edge DNS as the DNS provider. This file should include the necessary environment variables:
+
+```shell
+provider:
+  name: akamai
+env:
+  - name: EXTERNAL_DNS_AKAMAI_SERVICECONSUMERDOMAIN
+    valueFrom:
+      secretKeyRef:
+        name: AKAMAI-DNS
+        key: EXTERNAL_DNS_AKAMAI_SERVICECONSUMERDOMAIN
+  - name: EXTERNAL_DNS_AKAMAI_CLIENT_TOKEN
+    valueFrom:
+      secretKeyRef:
+        name: AKAMAI-DNS
+        key: EXTERNAL_DNS_AKAMAI_CLIENT_TOKEN
+  - name: EXTERNAL_DNS_AKAMAI_CLIENT_SECRET
+    valueFrom:
+      secretKeyRef:
+        name: AKAMAI-DNS
+        key: EXTERNAL_DNS_AKAMAI_CLIENT_SECRET
+  - name: EXTERNAL_DNS_AKAMAI_ACCESS_TOKEN
+    valueFrom:
+      secretKeyRef:
+        name: AKAMAI-DNS
+        key: EXTERNAL_DNS_AKAMAI_ACCESS_TOKEN
+```
+
+Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file:
+
+```shell
+helm upgrade --install external-dns external-dns/external-dns --values values.yaml
+```
+
 
 ### Manifest (for clusters without RBAC enabled)
 
@@ -70,22 +117,22 @@ spec:
         - name: EXTERNAL_DNS_AKAMAI_SERVICECONSUMERDOMAIN
           valueFrom:
             secretKeyRef:
-              name: external-dns
+              name: AKAMAI-DNS
               key: EXTERNAL_DNS_AKAMAI_SERVICECONSUMERDOMAIN
         - name: EXTERNAL_DNS_AKAMAI_CLIENT_TOKEN
           valueFrom:
             secretKeyRef:
-              name: external-dns
+              name: AKAMAI-DNS
               key: EXTERNAL_DNS_AKAMAI_CLIENT_TOKEN
         - name: EXTERNAL_DNS_AKAMAI_CLIENT_SECRET
           valueFrom:
             secretKeyRef:
-              name: external-dns
+              name: AKAMAI-DNS
               key: EXTERNAL_DNS_AKAMAI_CLIENT_SECRET
         - name: EXTERNAL_DNS_AKAMAI_ACCESS_TOKEN
           valueFrom:
             secretKeyRef:
-              name: external-dns
+              name: AKAMAI-DNS
               key: EXTERNAL_DNS_AKAMAI_ACCESS_TOKEN
 ```
 
@@ -156,22 +203,22 @@ spec:
         - name: EXTERNAL_DNS_AKAMAI_SERVICECONSUMERDOMAIN
           valueFrom:
             secretKeyRef:
-              name: external-dns
+              name: AKAMAI-DNS
               key: EXTERNAL_DNS_AKAMAI_SERVICECONSUMERDOMAIN
         - name: EXTERNAL_DNS_AKAMAI_CLIENT_TOKEN
           valueFrom:
             secretKeyRef:
-              name: external-dns
+              name: AKAMAI-DNS
               key: EXTERNAL_DNS_AKAMAI_CLIENT_TOKEN
         - name: EXTERNAL_DNS_AKAMAI_CLIENT_SECRET
           valueFrom:
             secretKeyRef:
-              name: external-dns
+              name: AKAMAI-DNS
               key: EXTERNAL_DNS_AKAMAI_CLIENT_SECRET
         - name: EXTERNAL_DNS_AKAMAI_ACCESS_TOKEN
           valueFrom:
             secretKeyRef:
-              name: external-dns
+              name: AKAMAI-DNS
               key: EXTERNAL_DNS_AKAMAI_ACCESS_TOKEN
 ```
 
diff --git a/docs/tutorials/aws.md b/docs/tutorials/aws.md
index 54eafba5f4..708b0164ce 100644
--- a/docs/tutorials/aws.md
+++ b/docs/tutorials/aws.md
@@ -392,6 +392,24 @@ kubectl get namespaces | grep -q $EXTERNALDNS_NS || \
   kubectl create namespace $EXTERNALDNS_NS
 ```
 
+## Using Helm (with OIDC)
+
+Create a values.yaml file to configure ExternalDNS:
+
+```shell
+provider:
+  name: aws
+env:
+  - name: AWS_DEFAULT_REGION
+    value: us-east-1 # change to region where EKS is installed
+```
+
+Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file:
+
+```shell
+helm upgrade --install external-dns external-dns/external-dns --values values.yaml
+```
+
 ### Manifest (for clusters without RBAC enabled)
 
 Save the following below as `externaldns-no-rbac.yaml`.
diff --git a/docs/tutorials/cloudflare.md b/docs/tutorials/cloudflare.md
index 846ed22722..487f190385 100644
--- a/docs/tutorials/cloudflare.md
+++ b/docs/tutorials/cloudflare.md
@@ -34,8 +34,43 @@ Cloudflare API has a [global rate limit of 1,200 requests per five minutes](http
 ## Deploy ExternalDNS
 
 Connect your `kubectl` client to the cluster you want to test ExternalDNS with.
+
+Begin by creating a Kubernetes secret to securely store your CloudFlare API key. This key will enable ExternalDNS to authenticate with CloudFlare:
+
+```shell
+kubectl create secret generic cloudflare-api-key --from-literal=API_KEY=YOUR_API_KEY ---from-literal=CF_API_EMAIL=YOUR_CLOUDFLARE_EMAIL
+```
+
+Ensure to replace YOUR_API_KEY with your actual CloudFlare API key and YOUR_CLOUDFLARE_EMAIL with the email associated with your CloudFlare account.
+
 Then apply one of the following manifests file to deploy ExternalDNS.
 
+### Using Helm
+
+Create a values.yaml file to configure ExternalDNS to use CloudFlare as the DNS provider. This file should include the necessary environment variables:
+
+```shell
+provider: 
+  name: cloudflare
+env:
+  - name: CF_API_KEY
+    valueFrom:
+      secretKeyRef:
+        name: cloudflare-api-key
+        key: apiKey
+  - name: CF_API_EMAIL
+    valueFrom:
+      secretKeyRef:
+        name: cloudflare-api-key
+        key: YOUR_CLOUDFLARE_EMAIL
+```
+
+Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file:
+
+```shell
+helm upgrade --install external-dns external-dns/external-dns --values values.yaml
+```
+
 ### Manifest (for clusters without RBAC enabled)
 
 ```yaml
@@ -64,11 +99,17 @@ spec:
         - --provider=cloudflare
         - --cloudflare-proxied # (optional) enable the proxy feature of Cloudflare (DDOS protection, CDN...)
         - --cloudflare-dns-records-per-page=5000 # (optional) configure how many DNS records to fetch per request
-        env:
-        - name: CF_API_KEY
-          value: "YOUR_CLOUDFLARE_API_KEY"
-        - name: CF_API_EMAIL
-          value: "YOUR_CLOUDFLARE_EMAIL"
+      env:
+       - name: CF_API_KEY
+          valueFrom:
+            secretKeyRef:
+              name: cloudflare-api-key
+              key: API_KEY
+       - name: CF_API_EMAIL
+          valueFrom:
+            secretKeyRef:
+              name: cloudflare-api-key
+              key: YOUR_CLOUDFLARE_EMAIL
 ```
 
 ### Manifest (for clusters with RBAC enabled)
@@ -134,10 +175,16 @@ spec:
         - --cloudflare-proxied # (optional) enable the proxy feature of Cloudflare (DDOS protection, CDN...)
         - --cloudflare-dns-records-per-page=5000 # (optional) configure how many DNS records to fetch per request
         env:
-        - name: CF_API_KEY
-          value: "YOUR_CLOUDFLARE_API_KEY"
-        - name: CF_API_EMAIL
-          value: "YOUR_CLOUDFLARE_EMAIL"
+       - name: CF_API_KEY
+        valueFrom:
+          secretKeyRef:
+            name: cloudflare-api-key
+            key: apiKey
+       - name: CF_API_EMAIL
+         valueFrom:
+           secretKeyRef:
+             name: cloudflare-api-key
+             key: YOUR_CLOUDFLARE_EMAIL
 ```
 
 ## Deploying an Nginx Service
diff --git a/docs/tutorials/digitalocean.md b/docs/tutorials/digitalocean.md
index e50ddb4f2d..57d43d5328 100644
--- a/docs/tutorials/digitalocean.md
+++ b/docs/tutorials/digitalocean.md
@@ -21,9 +21,34 @@ The environment variable `DO_TOKEN` will be needed to run ExternalDNS with Digit
 ## Deploy ExternalDNS
 
 Connect your `kubectl` client to the cluster you want to test ExternalDNS with.
+
+Begin by creating a Kubernetes secret to securely store your DigitalOcean API key. This key will enable ExternalDNS to authenticate with DigitalOcean:
+
+```shell
+kubectl create secret generic DO_TOKEN --from-literal=DO_TOKEN=YOUR_DIGITALOCEAN_API_KEY
+```
+
+Ensure to replace YOUR_DIGITALOCEAN_API_KEY with your actual DigitalOcean API key.
+
 Then apply one of the following manifests file to deploy ExternalDNS.
 
+## Using Helm
+
+Create a values.yaml file to configure ExternalDNS to use DigitalOcean as the DNS provider. This file should include the necessary environment variables:
+
+```shell
+provider: 
+  name: digitalocean
+env:
+  - name: DO_TOKEN
+    valueFrom:
+      secretKeyRef:
+        name: DO_TOKEN
+        key: DO_TOKEN
+```
+
 ### Manifest (for clusters without RBAC enabled)
+
 ```yaml
 apiVersion: apps/v1
 kind: Deployment
@@ -50,7 +75,10 @@ spec:
         - --provider=digitalocean
         env:
         - name: DO_TOKEN
-          value: "YOUR_DIGITALOCEAN_API_KEY"
+          valueFrom:
+            secretKeyRef:
+              name: DO_TOKEN
+              key: DO_TOKEN
 ```
 
 ### Manifest (for clusters with RBAC enabled)
@@ -114,7 +142,10 @@ spec:
         - --provider=digitalocean
         env:
         - name: DO_TOKEN
-          value: "YOUR_DIGITALOCEAN_API_KEY"
+          valueFrom:
+            secretKeyRef:
+              name: DO_TOKEN
+              key: DO_TOKEN
 ```
 
 
diff --git a/docs/tutorials/godaddy.md b/docs/tutorials/godaddy.md
index a95bf538a6..f896020825 100644
--- a/docs/tutorials/godaddy.md
+++ b/docs/tutorials/godaddy.md
@@ -24,6 +24,26 @@ Using the [GoDaddy documentation](https://developer.godaddy.com/getstarted) you
 
 Connect your `kubectl` client to the cluster with which you want to test ExternalDNS, and then apply one of the following manifest files for deployment:
 
+## Using Helm
+
+Create a values.yaml file to configure ExternalDNS to use NS1 as the DNS provider. This file should include the necessary environment variables:
+
+```shell
+provider: 
+  name: godaddy 
+extraArgs:
+  - --godaddy-api-key=YOUR_API_KEY
+  - --godaddy-api-secret=YOUR_API_SECRET
+```
+
+Ensure to replace YOUR_API_KEY and YOUR_API_SECRET with your actual godaddy API key and godaddy API secret.
+
+Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file:
+
+```shell
+helm upgrade --install external-dns external-dns/external-dns --values values.yaml
+```
+
 ### Manifest (for clusters without RBAC enabled)
 
 ```yaml
diff --git a/docs/tutorials/ns1.md b/docs/tutorials/ns1.md
index 71d9039cb4..4673a60353 100644
--- a/docs/tutorials/ns1.md
+++ b/docs/tutorials/ns1.md
@@ -41,6 +41,37 @@ var `NS1_APIKEY` will be needed to run ExternalDNS with NS1.
 
 Connect your `kubectl` client to the cluster with which you want to test ExternalDNS, and then apply one of the following manifest files for deployment:
 
+Begin by creating a Kubernetes secret to securely store your NS1 API key. This key will enable ExternalDNS to authenticate with NS1:
+
+```shell
+kubectl create secret generic NS1_APIKEY --from-literal=NS1_API_KEY=YOUR_NS1_API_KEY
+```
+
+Ensure to replace YOUR_NS1_API_KEY with your actual NS1 API key.
+
+Then apply one of the following manifests file to deploy ExternalDNS.
+
+## Using Helm
+
+Create a values.yaml file to configure ExternalDNS to use NS1 as the DNS provider. This file should include the necessary environment variables:
+
+```shell
+provider: 
+  name: ns1
+env:
+  - name: NS1_APIKEY
+    valueFrom:
+      secretKeyRef:
+        name: NS1_APIKEY
+        key: NS1_API_KEY
+```
+
+Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file:
+
+```shell
+helm upgrade --install external-dns external-dns/external-dns --values values.yaml
+```
+
 ### Manifest (for clusters without RBAC enabled)
 
 ```yaml
@@ -67,8 +98,11 @@ spec:
         - --domain-filter=example.com # (optional) limit to only example.com domains; change to match the zone created above.
         - --provider=ns1
         env:
-        - name: NS1_APIKEY
-          value: "YOUR_NS1_API_KEY"
+       - name: NS1_APIKEY
+          valueFrom:
+            secretKeyRef:
+              name: NS1_APIKEY
+              key: NS1_API_KEY
 ```
 
 ### Manifest (for clusters with RBAC enabled)
@@ -131,8 +165,11 @@ spec:
         - --domain-filter=example.com # (optional) limit to only example.com domains; change to match the zone created above.
         - --provider=ns1
         env:
-        - name: NS1_APIKEY
-          value: "YOUR_NS1_API_KEY"
+       - name: NS1_APIKEY
+          valueFrom:
+            secretKeyRef:
+              name: NS1_APIKEY
+              key: NS1_API_KEY
 ```
 
 ## Deploying an Nginx Service
diff --git a/docs/tutorials/plural.md b/docs/tutorials/plural.md
index 762c59d3fb..629f9d3452 100644
--- a/docs/tutorials/plural.md
+++ b/docs/tutorials/plural.md
@@ -15,6 +15,32 @@ To create the secret you can run `kubectl create secret generic plural-env --fro
 Connect your `kubectl` client to the cluster you want to test ExternalDNS with.
 Then apply one of the following manifests file to deploy ExternalDNS.
 
+## Using Helm
+
+Create a values.yaml file to configure ExternalDNS to use plural DNS as the DNS provider. This file should include the necessary environment variables:
+
+```shell
+provider:
+  name: plural
+extraArgs:
+  - --plural-cluster=example-plural-cluster
+  - --plural-provider=aws # gcp, azure, equinix and kind are also possible
+env:
+  - name: PLURAL_ACCESS_TOKEN
+    valueFrom:
+      secretKeyRef:
+        name: PLURAL_ACCESS_TOKEN
+        key: plural-env
+  - name: PLURAL_ENDPOINT
+    value: https://app.plural.sh 
+```
+
+Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file:
+
+```shell
+helm upgrade --install external-dns external-dns/external-dns --values values.yaml
+```
+
 ### Manifest (for clusters without RBAC enabled)
 
 ```yaml
diff --git a/docs/tutorials/vultr.md b/docs/tutorials/vultr.md
index c5fcbed8e8..09f6406df5 100644
--- a/docs/tutorials/vultr.md
+++ b/docs/tutorials/vultr.md
@@ -20,8 +20,39 @@ The environment variable `VULTR_API_KEY` will be needed to run ExternalDNS with
 ## Deploy ExternalDNS
 
 Connect your `kubectl` client to the cluster you want to test ExternalDNS with.
+
+Begin by creating a Kubernetes secret to securely store your  Akamai Edge DNS Access Tokens. This key will enable ExternalDNS to authenticate with Akamai Edge DNS:
+
+```shell
+kubectl create secret generic VULTR_API_KEY --from-literal=VULTR_API_KEY=YOUR_VULTR_API_KEY
+```
+
+Ensure to replace YOUR_VULTR_API_KEY, with your actual Vultr API key.
+
+
 Then apply one of the following manifests file to deploy ExternalDNS.
 
+### Using Helm
+
+reate a values.yaml file to configure ExternalDNS to use Akamai Edge DNS as the DNS provider. This file should include the necessary environment variables:
+
+```shell
+provider:
+  name: akamai
+env:
+  - name: VULTR_API_KEY
+    valueFrom:
+      secretKeyRef:
+        name: VULTR_API_KEY
+        key: VULTR_API_KEY
+```
+
+Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file:
+
+```shell
+helm upgrade --install external-dns external-dns/external-dns --values values.yaml
+```
+
 ### Manifest (for clusters without RBAC enabled)
 
 ```yaml
@@ -49,7 +80,10 @@ spec:
         - --provider=vultr
         env:
         - name: VULTR_API_KEY
-          value: "YOU_VULTR_API_KEY"
+          valueFrom:
+            secretKeyRef:
+              name: VULTR_API_KEY
+              key: VULTR_API_KEY
 ```
 
 ### Manifest (for clusters with RBAC enabled)
@@ -113,7 +147,10 @@ spec:
         - --provider=vultr
         env:
         - name: VULTR_API_KEY
-          value: "YOU_VULTR_API_KEY"
+          valueFrom:
+            secretKeyRef:
+              name: VULTR_API_KEY
+              key: VULTR_API_KEY
 ```
 
 ## Deploying a Nginx Service


Test patch: