Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for backup directive for VS and TS #4653

Merged
merged 59 commits into from
Dec 12, 2023
Merged
Show file tree
Hide file tree
Changes from 43 commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
e3edfa6
Update CRDS for service backup
jjngx Nov 13, 2023
ffe956d
Add VS validators for Backup
jjngx Nov 14, 2023
132639a
Add backup validation for TS
jjngx Nov 14, 2023
a3d042a
Remove redundant test
jjngx Nov 15, 2023
87accc5
Validate lb methods with params
jjngx Nov 17, 2023
ba17d62
Update lb validation test for TS
jjngx Nov 17, 2023
bdac84d
Add backup server to VS templates
jjngx Nov 24, 2023
23b2646
Add tests for VS template executor
jjngx Nov 24, 2023
1b684cf
Add backup to TS templates
jjngx Nov 28, 2023
7dbc99d
Add TS templates tests
jjngx Nov 28, 2023
37ce0a9
Add support for backup svc for VS and TS
jjngx Dec 1, 2023
a416f66
Resolved merge conflicts in TS and VS templates
jjngx Dec 1, 2023
d98eb4a
Update tests for VS backups service
jjngx Dec 4, 2023
74c1215
Add negative tests for TS and VS backup name
jjngx Dec 4, 2023
ef077c5
Merge branch 'main' into feat/backup-service
jjngx Dec 4, 2023
3f56740
Update check for nil backup
jjngx Dec 4, 2023
86bd7ed
Add docs for backup directive
jjngx Dec 5, 2023
b5fe733
Add docs for backup directive
jjngx Dec 5, 2023
9afc9de
Merge branch 'main' into feat/backup-service
jjngx Dec 5, 2023
2d24bc6
Merge branch 'main' into feat/backup-service
jjngx Dec 5, 2023
d4e8a0b
Encapsulate backup generation logic in a func
jjngx Dec 6, 2023
33f1a80
Merge branch 'main' into feat/backup-service
jjngx Dec 6, 2023
c04ec6b
WIP - backup directive examples
jjngx Dec 6, 2023
a383436
WIP - VS examples for Backup
jjngx Dec 7, 2023
cd243ad
Merge branch 'main' into feat/backup-service
jjngx Dec 7, 2023
16c3a76
WIP - update TS backup example
jjngx Dec 7, 2023
c69ee92
WIP - update TS backup example
jjngx Dec 8, 2023
fd9813e
Increase test coverage
jjngx Dec 8, 2023
014b38a
WIP Update TS backup examples
jjngx Dec 8, 2023
224a38a
Merge branch 'main' into feat/backup-service
jjngx Dec 8, 2023
46d1a72
WIP - update docs for TS
jjngx Dec 8, 2023
a1d8888
WIP - fix service name in TS example
jjngx Dec 8, 2023
eec0e90
Add cafe secret for the example app
jjngx Dec 8, 2023
32875de
Merge branch 'main' into feat/backup-service
jjngx Dec 8, 2023
01808c8
Combine yaml files
jjngx Dec 11, 2023
ff8c169
Update README for TS
jjngx Dec 11, 2023
a9cdc6e
Update ts and vs examples
shaun-nx Dec 11, 2023
26b26f7
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Dec 11, 2023
58d7d57
Fix linting in README
shaun-nx Dec 11, 2023
8512468
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Dec 11, 2023
ed97663
Fix headings and indentations
shaun-nx Dec 11, 2023
2e5f080
Don't create backup when resolver not configured
jjngx Dec 11, 2023
23d5fb6
Merge branch 'main' into feat/backup-service
jjngx Dec 12, 2023
6cf2473
Update examples/custom-resources/backup-directive/transport-server/RE…
jjngx Dec 12, 2023
943bcb1
Update examples/custom-resources/backup-directive/transport-server/RE…
jjngx Dec 12, 2023
b3303be
Update docs/content/configuration/transportserver-resource.md
jjngx Dec 12, 2023
1a3df82
Update docs/content/configuration/virtualserver-and-virtualserverrout…
jjngx Dec 12, 2023
ba8c2fc
Update examples/custom-resources/backup-directive/transport-server/RE…
jjngx Dec 12, 2023
74d78fa
Update examples/custom-resources/backup-directive/transport-server/RE…
jjngx Dec 12, 2023
6972b7f
Update examples/custom-resources/backup-directive/transport-server/RE…
jjngx Dec 12, 2023
e5d6d48
Update examples/custom-resources/backup-directive/transport-server/RE…
jjngx Dec 12, 2023
905f0b3
Update examples/custom-resources/backup-directive/transport-server/RE…
jjngx Dec 12, 2023
c9d8b6e
Add functional tests for VS and TS
shaun-nx Dec 12, 2023
101b9db
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Dec 12, 2023
45c61ec
Fix markdown linting
jjngx Dec 12, 2023
5b3b886
Remove updates to NIC OSS
jjngx Dec 12, 2023
0c4a8ca
Fix merge conflict
jjngx Dec 12, 2023
1612d9f
Sort upstream backups
jjngx Dec 12, 2023
9942a71
Merge branch 'main' into feat/backup-service
jjngx Dec 12, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions config/crd/bases/k8s.nginx.org_transportservers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,10 @@ spec:
items:
description: TransportServerUpstream defines an upstream.
properties:
backup:
type: string
backupPort:
type: integer
failTimeout:
type: string
healthCheck:
Expand Down Expand Up @@ -251,6 +255,10 @@ spec:
items:
description: TransportServerUpstream defines an upstream.
properties:
backup:
type: string
backupPort:
type: integer
failTimeout:
type: string
healthCheck:
Expand Down
4 changes: 4 additions & 0 deletions config/crd/bases/k8s.nginx.org_virtualserverroutes.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -498,6 +498,10 @@ spec:
items:
description: Upstream defines an upstream.
properties:
backup:
type: string
backupPort:
type: integer
buffer-size:
type: string
buffering:
Expand Down
4 changes: 4 additions & 0 deletions config/crd/bases/k8s.nginx.org_virtualservers.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -599,6 +599,10 @@ spec:
items:
description: Upstream defines an upstream.
properties:
backup:
type: string
backupPort:
type: integer
buffer-size:
type: string
buffering:
Expand Down
16 changes: 16 additions & 0 deletions deploy/crds.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -612,6 +612,10 @@ spec:
items:
description: TransportServerUpstream defines an upstream.
properties:
backup:
jjngx marked this conversation as resolved.
Show resolved Hide resolved
type: string
backupPort:
type: integer
failTimeout:
type: string
healthCheck:
Expand Down Expand Up @@ -760,6 +764,10 @@ spec:
items:
description: TransportServerUpstream defines an upstream.
properties:
backup:
type: string
backupPort:
type: integer
failTimeout:
type: string
healthCheck:
Expand Down Expand Up @@ -1321,6 +1329,10 @@ spec:
items:
description: Upstream defines an upstream.
properties:
backup:
type: string
backupPort:
type: integer
buffer-size:
type: string
buffering:
Expand Down Expand Up @@ -2102,6 +2114,10 @@ spec:
items:
description: Upstream defines an upstream.
properties:
backup:
type: string
backupPort:
type: integer
buffer-size:
type: string
buffering:
Expand Down
2 changes: 2 additions & 0 deletions docs/content/configuration/transportserver-resource.md
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,8 @@ loadBalancingMethod: least_conn
|``failTimeout`` | Sets the [time](https://nginx.org/en/docs/stream/ngx_stream_upstream_module.html#fail_timeout) during which the specified number of unsuccessful attempts to communicate with the server should happen to consider the server unavailable and the period of time the server will be considered unavailable. The default is ``10s``. | ``string`` | No |
|``healthCheck`` | The health check configuration for the Upstream. See the [health_check](https://nginx.org/en/docs/stream/ngx_stream_upstream_hc_module.html#health_check) directive. Note: this feature is supported only in NGINX Plus. | [healthcheck](#upstreamhealthcheck) | No |
|``loadBalancingMethod`` | The method used to load balance the upstream servers. By default, connections are distributed between the servers using a weighted round-robin balancing method. See the [upstream](http://nginx.org/en/docs/stream/ngx_stream_upstream_module.html#upstream) section for available methods and their details. | ``string`` | No |
|``backup`` | The name of the backup service. For example, ``backup-svc``, ``backup-service`` are valid. Backup service is of type [ExternalName](https://kubernetes.io/docs/concepts/services-networking/service/#externalname). Note: The parameter cannot be used along with the ``random`` , ``hash`` or ``ip_hash`` load balancing methods. | ``string`` | No |
jjngx marked this conversation as resolved.
Show resolved Hide resolved
|``backupPort`` | The port of the backup service. The backup port is required if the backup service name is provided. The port must fall into the range ``1..65535``. | ``uint16`` | No |
{{% /table %}}

### Upstream.Healthcheck
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -372,6 +372,8 @@ tls:
|``buffer-size`` | Sets the size of the buffer used for reading the first part of a response received from the upstream server. See the [proxy_buffer_size](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffer_size) directive. The default is set in the ``proxy-buffer-size`` ConfigMap key. | ``string`` | No |
|``ntlm`` | Allows proxying requests with NTLM Authentication. See the [ntlm](https://nginx.org/en/docs/http/ngx_http_upstream_module.html#ntlm) directive. In order for NTLM authentication to work, it is necessary to enable keepalive connections to upstream servers using the ``keepalive`` field. Note: this feature is supported only in NGINX Plus.| ``boolean`` | No |
|``type`` |The type of the upstream. Supported values are ``http`` and ``grpc``. The default is ``http``. For gRPC, it is necessary to enable HTTP/2 in the [ConfigMap](/nginx-ingress-controller/configuration/global-configuration/configmap-resource/#listeners) and configure TLS termination in the VirtualServer. | ``string`` | No |
|``backup`` | The name of the backup service. For example, ``backup-svc``, ``backup-service`` are valid. Backup service is of type [ExternalName](https://kubernetes.io/docs/concepts/services-networking/service/#externalname). Note: The parameter cannot be used along with the ``random`` , ``hash`` or ``ip_hash`` load balancing methods. | ``string`` | No |
jjngx marked this conversation as resolved.
Show resolved Hide resolved
|``backupPort`` | The port of the backup service. The backup port is required if the backup service name is provided. The port must fall into the range ``1..65535``. | ``uint16`` | No |
{{% /table %}}

### Upstream.Buffers
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
# Support for Backup Directive in Transport Server

NGINX Ingress Controller supports routing requests to a service specified as `Backup`.
jjngx marked this conversation as resolved.
Show resolved Hide resolved
The `backup` service is of type
[ExternalName](https://kubernetes.io/docs/concepts/services-networking/service/#externalname).
jjngx marked this conversation as resolved.
Show resolved Hide resolved

> [!NOTE]
> Support of the services of type
> [ExternalName](https://kubernetes.io/docs/concepts/services-networking/service/#externalname)
> is only available in NGINX Plus.
jjngx marked this conversation as resolved.
Show resolved Hide resolved

In this example, we will use two configurations of the
[tls-passthrough](/examples/custom-resources/tls-passthrough) example.
jjngx marked this conversation as resolved.
Show resolved Hide resolved
One will be deployed in the `default` namespace, and the other in the `external-ns` namespace.

The application in the `external-ns` namespace will respond to our requests when main application is unavailable.

## Prerequisites

1. Configure the F5 NGINX Ingress Controller deployment with the following flags:

```shell
-enable-custom-resources
-enable-tls-passthrough
-watch-namespace=nginx-ingress,default
```

We configure the `-watch-namespace` flag to only watch the `nginx-ingress` and `default` namespaces.
This ensures that the F5 NGINX Ingress Controller will treat our service in the `external-ns` namespace
jjngx marked this conversation as resolved.
Show resolved Hide resolved
as an external service.

2. Follow the [installation](https://docs.nginx.com/nginx-ingress-controller/installation/installation-with-manifests/)
instructions to deploy the F5 NGINX Ingress Controller.
jjngx marked this conversation as resolved.
Show resolved Hide resolved

3. Save the public IP address of the F5 NGINX Ingress Controller into a shell variable:

```shell
IC_IP=XXX.YYY.ZZZ.III
```

4. Save the HTTPS port of the F5 NGINX Ingress Controller into a shell variable:
jjngx marked this conversation as resolved.
Show resolved Hide resolved

```shell
IC_HTTPS_PORT=<port number>
```

## Deployment

### 1. Deploy ConfigMap with defined resolver

```shell
kubectl create -f nginx-config.yaml
```

### 2. Deploy Backup ExternalName service

```shell
kubectl create -f backup-svc.yaml
```

### 3. Deploy the tls-passthrough application

```shell
kubectl create -f secure-app.yaml
```

### 4. Deploy TransportServer

```shell
kubectl create -f transport-server-passthrough.yaml
```

### 5. Test the Configuration

Run the below curl command to get a response from your application:

```shell
curl --resolve app.example.com:$IC_HTTPS_PORT:$IC_IP https://app.example.com:$IC_HTTPS_PORT --insecure
```

```shell
hello from pod secure-app-694bc784b-qh8ng
```

### 6. Deploy the second tls-passthrough application to the external namespace

```shell
kubectl apply -f external-secure-app.yaml
```

### 7. Test the configuration using the backup service

1. Scale down `secure-app` deployment to 0.
This is done to ensure that the external `backup` service will respond to our requests.

```shell
kubectl scale deployment secure-app --replicas=0
```

2. Verify if the application is working by sending a request and check if the response is coming from the "external
backend pod"

```shell
curl --resolve app.example.com:$IC_HTTPS_PORT:$IC_IP https://app.example.com:$IC_HTTPS_PORT --insecure
```

3. Check response from the backup service

```shell
HELLO FROM EXTERNAL APP pod secure-app-backup-7d98dd8d78-p8q7d
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
kind: Service
apiVersion: v1
metadata:
name: backup-svc-ts
spec:
type: ExternalName
externalName: secure-app-backup.external-ns.svc.cluster.local
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
apiVersion: v1
kind: Namespace
metadata:
name: external-ns
namespace: external-ns
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: secure-app-backup
namespace: external-ns
spec:
replicas: 1
selector:
matchLabels:
app: secure-app-backup
template:
metadata:
labels:
app: secure-app-backup
spec:
containers:
- name: secure-app-backup
image: nginxdemos/nginx-hello:plain-text
ports:
- containerPort: 8443
volumeMounts:
- name: secret
mountPath: /etc/nginx/ssl
readOnly: true
- name: config-volume
mountPath: /etc/nginx/conf.d
volumes:
- name: secret
secret:
secretName: app-tls-secret
- name: config-volume
configMap:
name: secure-config
---
apiVersion: v1
kind: Service
metadata:
name: secure-app-backup
namespace: external-ns
spec:
ports:
- port: 8443
targetPort: 8443
protocol: TCP
name: https
selector:
app: secure-app-backup
---
apiVersion: v1
kind: ConfigMap
metadata:
name: secure-config
namespace: external-ns
data:
app.conf: |-
server {
listen 8443 ssl;
listen [::]:8443 ssl;

server_name app.example.com;

ssl_certificate /etc/nginx/ssl/tls.crt;
ssl_certificate_key /etc/nginx/ssl/tls.key;

default_type text/plain;

location / {
return 200 "HELLO FROM EXTERNAL APP pod $hostname\n";
}
}
---
apiVersion: v1
kind: Secret
metadata:
name: app-tls-secret
namespace: external-ns
data:
tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURGRENDQWZ3Q0NRQ3EzQWxhdnJiaWpqQU5CZ2txaGtpRzl3MEJBUXNGQURCTU1Rc3dDUVlEVlFRR0V3SlYKVXpFTE1Ba0dBMVVFQ0F3Q1EwRXhGakFVQmdOVkJBY01EVk5oYmlCR2NtRnVZMmx6WTI4eEdEQVdCZ05WQkFNTQpEMkZ3Y0M1bGVHRnRjR3hsTG1OdmJUQWVGdzB5TURBek1qTXlNekl3TkROYUZ3MHlNekF6TWpNeU16SXdORE5hCk1Fd3hDekFKQmdOVkJBWVRBbFZUTVFzd0NRWURWUVFJREFKRFFURVdNQlFHQTFVRUJ3d05VMkZ1SUVaeVlXNWoKYVhOamJ6RVlNQllHQTFVRUF3d1BZWEJ3TG1WNFlXMXdiR1V1WTI5dE1JSUJJakFOQmdrcWhraUc5dzBCQVFFRgpBQU9DQVE4QU1JSUJDZ0tDQVFFQTJCRXhZR1JPRkhoN2VPMVlxeCtWRHMzRzMrVEhyTEZULzdEUFFEQlkza3pDCi9oZlprWCt3OW1NNkQ1RU9uK2lpVlNhUWlQMm1aNFA3N29pR0dmd3JrNjJ0eEQ5cHphODM5NC9aSjF5Q0dXZ1QKK2NWUEVZbkxjQktzSTRMcktJZ21oWVIwUjNzWWRjR1JkSXJWUFZlNUVUQlk1Z1U0RGhhMDZOUEIraitmK0krWgphWGIvMlRBekJhNHozMWpIQzg2amVQeTFMdklGazFiY3I2cSsxRGR5eklxcWxkRDYvU3Q4Q2t3cDlOaDFCUGFhCktZZ1ZVd010UVBib2s1cFFmbVMrdDg4NHdSM0dTTEU4VkxRbzgyYnJhNUR3emhIamlzOTlJRGhzbUt0U3lWOXMKaWNJbXp5dHBnSXlhTS9zWEhRQU9KbVFJblFteWgyekd1WFhTQ0lkRGtRSURBUUFCTUEwR0NTcUdTSWIzRFFFQgpDd1VBQTRJQkFRQ0tsVkhOZ1k5VHZLaW9Xb0tvdllCdnNRMmYrcmFOOEJwdWNDcnRvRm15NUczcGIzU2lPTndaCkF2cnhtSm4vR3lsa3JKTHBpQVA1eUNBNGI2Y2lYMnRGa3pQRmhJVFZKRTVBeDlpaEF2WWZwTUFSdWVqM29HN2UKd0xwQk1iUnlGbHJYV29NWUVBMGxsV0JueHRQQXZYS2Y4SVZGYTRSSDhzV1JJSDB4M2hFdjVtQ3VUZjJTRTg0QwpiNnNjS3Z3MW9CQU5VWGxXRVZVYTFmei9rWWZBa1lrdHZyV2JUcTZTWGxodXRJYWY4WEYzSUMrL2x1b3gzZThMCjBBcEFQVE5sZ0JwOTkvcXMrOG9PMWthSmQ1TmV6TnlJeXhSdUtJMzlDWkxuQm9OYmkzdlFYY1NzRCtYU2lYT0cKcEVnTjNtci8xRms4OVZMSENhTnkyKzBqMjZ0eWpiclcKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUV2Z0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktnd2dnU2tBZ0VBQW9JQkFRRFlFVEZnWkU0VWVIdDQKN1Zpckg1VU96Y2JmNU1lc3NWUC9zTTlBTUZqZVRNTCtGOW1SZjdEMll6b1BrUTZmNktKVkpwQ0kvYVpuZy92dQppSVlaL0N1VHJhM0VQMm5OcnpmM2o5a25YSUlaYUJQNXhVOFJpY3R3RXF3amd1c29pQ2FGaEhSSGV4aDF3WkYwCml0VTlWN2tSTUZqbUJUZ09GclRvMDhINlA1LzRqNWxwZHYvWk1ETUZyalBmV01jTHpxTjQvTFV1OGdXVFZ0eXYKcXI3VU4zTE1pcXFWMFByOUszd0tUQ24wMkhVRTlwb3BpQlZUQXkxQTl1aVRtbEIrWkw2M3p6akJIY1pJc1R4VQp0Q2p6WnV0cmtQRE9FZU9LejMwZ09HeVlxMUxKWDJ5SndpYlBLMm1Bakpveit4Y2RBQTRtWkFpZENiS0hiTWE1CmRkSUloME9SQWdNQkFBRUNnZ0VCQUxYaW16ODZrT1A0bkhBcTFPYVEyb2l3dndhQTczbTNlUytZSm84eFk4NFcKcmxyNXRzUWR5dGxPcEhTd05yQjBSQnNNTU1XeFNPQ0JJWlltUlVVZ200cGd2Uk9rRWl2OG9VOThQMkE4SnFTKwprWHBFRjVCNi84K2pXRmM0Z1Q4SWhlMEZtR0VJQllvelhYL08wejBsV0h4WXg2MHluWUoycU9vS1FKT3A5YjlsCmpiUVBkaC9mN2ErRWF0RzZNUFlrNG5xSEY3a0FzcmNsRXo2SGUvaEx6NmRkSTJ1N2RMRjB6QlN0QjM5WDFRZysKZ1JzTittOXg1S1FVTXYxMktvajdLc2hEelozOG5hSjd5bDgycGhBV1lGZzBOZHlzRlBRbmt0WmlNSUxOblFjNwpOeUt0cHNQaUxIRE9ha05hdEZLU2lOaUJrUk1lY1ZUMlJNMzMzUG54bFVFQ2dZRUEvYTY5MEEralU4VFJNbVZyCk4vRnlYWkxYa1c5b2NxVjBRbTA0TDMrSExybFNCTlRWSzk2U1pVT203VjViTzIxNmd4S2dJK3IwYm5kdE5GTUQKLzFncDhsdlJNcUlIeGZTeUo4SHpsSzViT0lnaUpxRGhzK3BKWTZmLytIVzZ1QkZyN3NGS3lxbVlIQlA0SC9BdApsT3lLeEVjMHFXazFlT2tCMWNNSGx0WDRwemtDZ1lFQTJncDhDVDVYWjNMSWRQN2M1SHpDS1YwczBYS1hGNmYyCkxzclhPVlZaTmJCN1NIS1NsOTBIU2VWVGx3czdqSnNxcC9yWFY2aHF0eUdEaTg4aTFZekthcEF6dXl3b0U3TnEKMUJpd2ZYSURQeTlPNUdGNXFYNXFUeENzSWNIcmo2Z21XMEZVQWhoS1lQcDRxd1JMdzFMZkJsd3U1VmhuN3I3ego0SkZBTEFpdlp4a0NnWUJicnpuKzVvZjdFSmtqQTdDYWlYTHlDczVLUzkrTi8rcGl6NktNMkNSOWFKRVNHZkhwClp3bTErNXRyRXIwYVgxajE0bGRxWTlKdjBrM3ZxVWs2a2h5bThUUk1mbThjeG5GVkdTMzF3SVpMaWpmOWlndkkKd0paQnBFaEkvaE83enVBWmJGYWhwR1hMVUJSUFJyalNxQ01IQ1UwcEpWTWtIZUtCNVhqcXRPNm5VUUtCZ0NJUAp6VHlzYm44TW9XQVZpSEJ4Uk91dFVKa1BxNmJZYUU3N0JSQkIwd1BlSkFRM1VjdERqaVh2RzFYWFBXQkR4VEFrCnNZdFNGZ214eEprTXJNWnJqaHVEbDNFLy9xckZOb1VYcmtxS2l4Tk4wcWMreXdDOWJPSVpHcXJUWG5jOHIzRkcKRFZlZWI5QWlrTU0ya3BkYTFOaHJnaS8xMVphb1lmVE0vQmRrNi9IUkFvR0JBSnFzTmFZYzE2clVzYzAzUEwybApXUGNzRnZxZGI3SEJyakVSRkhFdzQ0Vkt2MVlxK0ZWYnNNN1FTQVZ1V1llcGxGQUpDYzcrSEt1YjRsa1hRM1RkCndSajJLK2pOUzJtUXp1Y2hOQnlBZ1hXVnYveHhMZEE3NnpuWmJYdjl5cXhnTVVjTVZwZGRuSkxVZm9QVVZ1dTcKS0tlVVU3TTNIblRKUStrcldtbUxraUlSCi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
kind: ConfigMap
apiVersion: v1
metadata:
name: nginx-config
namespace: nginx-ingress
data:
resolver-addresses: "kube-dns.kube-system.svc.cluster.local"
Loading
Loading