Skip to content

Commit 683c63c

Browse files
authored
Merge pull request #543 from citrix/cic-release-1.26.7
updates for cic release 1.26.7
2 parents 4340598 + 2c0145f commit 683c63c

8 files changed

Lines changed: 97 additions & 11 deletions

File tree

canary/README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -765,7 +765,11 @@ You can configure canary deployment based on the HTTP request header which is co
765765

766766
### Canary deployment based on the HTTP request header value
767767

768-
You can also configure canary deployment based on the value of the HTTP request header which is an extension of canary by header. In this deployment, along with the `ingress.citrix.com/canary-by-header:` annotation, you also specify the `ingress.citrix.com/canary-by-header-value:` annotation. When the request header value matches with the value specified in the Ingress annotation `ingress.citrix.com/canary-by-header-value:` the request is routed to the service specified in the canary Ingress.
768+
You can also configure canary deployment based on values of the HTTP request header which is an extension of canary by header. In this deployment, along with the `ingress.citrix.com/canary-by-header:` annotation, you also specify the `ingress.citrix.com/canary-by-header-value:` annotation. When the request header value matches with the value specified in the Ingress annotation `ingress.citrix.com/canary-by-header-value:` the request is routed to the service specified in the canary Ingress. You can specify multiple header values as a list of strings.
769+
770+
Following is a sample annotation for canary deployment based on the HTTP request header values:
771+
772+
ingress.citrix.com/canary-by-header-value: '["value1","value2","value3","value4"]'
769773

770774
### Configure canary deployment using Ingress annotations
771775

@@ -828,3 +832,6 @@ Perform the following steps to deploy a sample application as a canary release.
828832
For deploying the HTTP header based canary using the Citrix ingress controller, replace the canary annotation `ingress.citrix.com/canary-weight:` with the `ingress.citrix.com/canary-by-header:` annotation in the `canary-ingress.yaml` file.
829833

830834
For deploying the HTTP header value based canary using the Citrix ingress controller, replace the `ingress.citrix.com/canary-weight:` annotation with the `ingress.citrix.com/canary-by-header:` and `ingress.citrix.com/canary-by-header-value:` annotations in the `canary-ingress.yaml` file.
835+
836+
**Note:**
837+
You can see the [Canary example YAMLs](https://github.com/citrix/citrix-k8s-ingress-controller/tree/master/example/simple-canary) for achieving canary based on the header and canary based on the header value.

deployment/baremetal/README.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,11 +204,20 @@ Perform the following steps to deploy the Citrix ingress controller as a stand-a
204204
205205
Specifies the Citrix ADM IP address for collecting analytics.
206206
</details>
207+
<details>
208+
<summary>NS_DNS_NAMESERVER</summary>
209+
Enables adding DNS nameservers on Citrix ADC VPX.
210+
</details>
211+
207212
<details>
208213
<summary>NS_CONFIG_DNS_REC</summary>
209-
Enables the DNS server configuration on Citrix ADC. This variable is configured at the boot time and cannot be changed at runtime. Possible values are true or false. The default value is `false`.
214+
Enables adding DNS records on Citrix ADC for Ingress resources. This variable is configured at the boot time and cannot be changed at runtime. Possible values are true or false. The default value is `false` and you need to set it as `true` to enable the DNS server configuration.
215+
</details>
216+
217+
<details>
218+
<summary>NS_SVC_LB_DNS_REC</summary>
219+
Enables adding DNS records on Citrix ADC for services of type LoadBalancer. Possible values are true or false. This variable is configured at the boot time and cannot be changed at runtime. The default value is `false` and you need to set it as `true` to enable the DNS server configuration.
210220
</details>
211-
212221
213222
1. Deploy the Citrix ingress controller using the `kubectl create` command.
214223

docs/canary/canary.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -763,9 +763,13 @@ For deploying weight based canary using the Citrix ingress controller, create a
763763

764764
You can configure canary deployment based on the HTTP request header which is controlled by clients. The request header notifies the Ingress to route the request to the service specified in the canary Ingress. When the request header contains the value mentioned in the Ingress annotation `ingress.citrix.com/canary-by-header:`, the request is routed to the service specified in the canary Ingress.
765765

766-
### Canary deployment based on the HTTP request header value
766+
### Canary deployment based on the HTTP request header values
767767

768-
You can also configure canary deployment based on the value of the HTTP request header which is an extension of canary by header. In this deployment, along with the `ingress.citrix.com/canary-by-header:` annotation, you also specify the `ingress.citrix.com/canary-by-header-value:` annotation. When the request header value matches with the value specified in the Ingress annotation `ingress.citrix.com/canary-by-header-value:` the request is routed to the service specified in the canary Ingress.
768+
You can also configure canary deployment based on values of the HTTP request header which is an extension of canary by header. In this deployment, along with the `ingress.citrix.com/canary-by-header:` annotation, you also specify the `ingress.citrix.com/canary-by-header-value:` annotation. When the request header value matches with the value specified in the Ingress annotation `ingress.citrix.com/canary-by-header-value:` the request is routed to the service specified in the canary Ingress. You can specify multiple header values as a list of strings.
769+
770+
Following is a sample annotation for canary deployment based on the HTTP request header values:
771+
772+
ingress.citrix.com/canary-by-header-value: '["value1","value2","value3","value4"]'
769773

770774
### Configure canary deployment using Ingress annotations
771775

@@ -828,5 +832,5 @@ For deploying the HTTP header based canary using the Citrix ingress controller,
828832

829833
For deploying the HTTP header value based canary using the Citrix ingress controller, replace the `ingress.citrix.com/canary-weight:` annotation with the `ingress.citrix.com/canary-by-header:` and `ingress.citrix.com/canary-by-header-value:` annotations in the `canary-ingress.yaml` file.
830834

831-
**Note:**
832-
You can see the [Canary example YAMLs](https://github.com/citrix/citrix-k8s-ingress-controller/tree/master/example/simple-canary) for achieving canary based on header and canary based on header value.
835+
**Note:**
836+
You can see the [Canary example YAMLs](https://github.com/citrix/citrix-k8s-ingress-controller/tree/master/example/simple-canary) for achieving canary based on the header and canary based on the header value.

docs/configure/add-dns-records.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Add DNS records using Citrix ADC ingress controller
2+
3+
A DNS address record is a mapping of the domain name to the IP address.
4+
When you want to use Citrix ADC as a DNS resolver, you can add the DNS records on Citrix ADC using Citrix ingress controller.
5+
6+
For more information on creating DNS records on Citrix ADC, see the [Citrix ADC documentation](https://docs.citrix.com/en-us/citrix-adc/current-release/dns/configure-dns-resource-records/create-address-records.html).
7+
8+
## Adding DNS records for Ingress resources
9+
10+
You need to enable the following environment variable during the Citrix ingress controller deployment to add DNS records for an Ingress resource.
11+
12+
`NS_CONFIG_DNS_REC`: This variable is configured at the boot time and cannot be changed at runtime. Possible values are `true` or `false`. The default value is false and you need to set it as true to enable the DNS server configuration. When you set the value as `true`, an address record is created on Citrix ADC.
13+
14+
## Adding DNS records for services of type LoadBalancer
15+
16+
You need to perform the following tasks to add DNS records for services of type LoadBalancer:
17+
18+
- Enable the `NS_SVC_LB_DNS_REC` environment variable by setting the value as `True` for adding DNS records for a service of type LoadBalancer.
19+
- Specify the DNS host name using the `service.citrix.com/dns-hostname` annotation.
20+
21+
When you create a service of type LoadBalancer with the `service.citrix.com/dns-hostname` annotation, Citrix ingress controller adds the DNS record on Citrix ADC. The DNS record is configured using the domain name specified in the annotation and the external IP address assigned to the service.
22+
23+
When you delete a service of type LoadBalancer with the `service.citrix.com/dns-hostname` annotation, Citrix ADC ingress controller removes the DNS records from the Citrix ADC.
24+
Citrix ingress controller also removes the stale entries of DNS records during boot up if the service is not available.
25+
26+
The following example shows a sample service of type LoadBalancer with the annotation configuration to add DNS records to Citrix ADC:
27+
28+
```yml
29+
apiVersion: v1
30+
kind: Service
31+
metadata:
32+
name: guestbook
33+
annotations:
34+
service.citrix.com/dns-hostname: "guestbook.com"
35+
spec:
36+
loadBalancerIP: "192.2.212.16"
37+
type: LoadBalancer
38+
ports:
39+
- port: 9006
40+
targetPort: 80
41+
protocol: TCP
42+
selector:
43+
app: guestbook
44+
```

docs/configure/config-map.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ The values for the following environment variables in the Citrix ingress control
2222

2323
- NS_DNS_NAMESERVER: Enables adding DNS nameservers on Citrix ADC VPX.
2424

25-
- NS_CONFIG_DNS_REC: Enables addding DNS address records on the Citrix ADC to configure Citrix ADC as a DNS server.
26-
2725
- POD_IPS_FOR_SERVICEGROUP_MEMBERS: Specifies to add the IP address of the pod and port as service group members instead of `NodeIP` and `NodePort` while configuring services of type `LoadBalancer` or `NodePort` on an external tier-1 Citrix ADC.
2826

2927
- IGNORE_NODE_EXTERNAL_IP: Specifies to ignore an external IP address and add an internal IP address for NodeIP while configuring NodeIP for services of type `LoadBalancer` or `NodePort` on an external tier-1 Citrix ADC.

docs/deploy/deploy-cic-yaml.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,10 @@ Perform the following:
9999
| NAMESPACE | Optional | While running a Citrix ingress controller with Role based RBAC, you must provide the namespace which you want to listen or get events. This namespace must be same as the one used for creating the service account. Using the service account, the Citrix ingress controller can listen on a namespace. You can use the `NAMESPACE` environment variable to specify the namespace. For more information, see [Deploy the Citrix ingress controller for a namespace](#Deploy-the-Citrix-ingress-controller-for-a-namespace). |
100100
| POD_IPS_FOR_SERVICEGROUP_MEMBERS| Optional| By default, while configuring services of type LoadBalancer and NodePort on an external tier-1 Citrix ADC the Citrix ingress controller adds NodeIP and NodePort as service group members. If this variable is set as `True`, pod IP address and port are added instead of NodeIP and NodePort as service group members.|
101101
|IGNORE_NODE_EXTERNAL_IP| Optional |While adding NodeIP for services of type LoadBalancer or NodePort on an external tier-1 Citrix ADC, the Citrix ingress controller prioritizes an external IP address over an internal IP address. When you want to prefer an internal IP address over an external IP address for NodeIP, you can set this variable to `True`.|
102-
| NS_CONFIG_DNS_REC | Optional| Enables the DNS server configuration on Citrix ADC. This variable is configured at the boot time and cannot be changed at runtime. Possible values are true or false. The default value is `false` and you need to set it as `true` to enable the DNS server configuration. When you set the value as 'true', the corresponding command `add dns addrec <abc.com 1.1.1.1>` is executed on Citrix ADC and an address record (mapping of the domain name to IP address) is created. For more information, see [Create address records for a domain name](https://docs.citrix.com/en-us/citrix-adc/current-release/dns/configure-dns-resource-records/create-address-records.html#:~:text=Add%20an%20Address%20record%20by%20using%20the%20GUI,and%20create%20an%20Address%20record). |
103-
102+
|NS_DNS_NAMESERVER | Optional | Enables adding DNS nameservers on Citrix ADC VPX. |
103+
| NS_CONFIG_DNS_REC | Optional| Enables adding DNS records on Citrix ADC for Ingress resources. This variable is configured at the boot time and cannot be changed at runtime. Possible values are true or false. The default value is `false` and you need to set it as `true` to enable the DNS server configuration. When you set the value as 'true', the corresponding command `add dns addrec <abc.com 1.1.1.1>` is executed on Citrix ADC and an address record (mapping of the domain name to IP address) is created. For more information, see [Create address records for a domain name](https://docs.citrix.com/en-us/citrix-adc/current-release/dns/configure-dns-resource-records/create-address-records.html#:~:text=Add%20an%20Address%20record%20by%20using%20the%20GUI,and%20create%20an%20Address%20record). |
104+
105+
| NS_SVC_LB_DNS_REC | Optional| Enables adding DNS records on Citrix ADC for services of type LoadBalancer. This variable is configured at the boot time and cannot be changed at runtime. Possible values are true or false. The default value is `false` and you need to set it as `true` to enable the DNS server configuration. |
104106

105107
2. Once you update the environment variables, save the YAML file and deploy it using the following command:
106108

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
apiVersion: networking.k8s.io/v1
2+
kind: Ingress
3+
metadata:
4+
name: guestbook
5+
annotations:
6+
kubernetes.io/ingress.class: “citrix”
7+
ingress.citrix.com/frontend-ip: 192.0.2.179
8+
ingress.citrix.com/canary-by-header: “header-name”
9+
ingress.citrix.com/canary-by-header-value: '[“value1”,“value2",“value3”,“value4"]'
10+
spec:
11+
rules:
12+
- host: guestbook.com
13+
http:
14+
paths:
15+
- path: /
16+
pathType: Prefix
17+
backend:
18+
service:
19+
name: frontend
20+
port:
21+
number: 80

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ nav:
123123
- Profile support for the Listener CRD: configure/profiles-for-listener-crd.md
124124
- IP address management using the Citrix IPAM controller for Ingress resources: configure/ipam-for-ingress.md
125125
- Apply CRDs using annotations: configure/crds-annotations.md
126+
- Add DNS records using Citrix ADC ingress controller: configure/add-dns-records.md
126127
- Network:
127128
- Static routing: network/staticrouting.md
128129
- Establish network between K8s nodes and Ingress Citrix ADC using Citrix node controller: network/node-controller.md

0 commit comments

Comments
 (0)