Skip to content

Commit e37822b

Browse files
authored
Merge pull request #561 from citrix/cic-release-1.28.2
changes for CIC release 1.28.2
2 parents 62b83fb + f3fa258 commit e37822b

2 files changed

Lines changed: 44 additions & 25 deletions

File tree

deployment/baremetal/README.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ In this deployment, the Citrix ingress controller runs as a pod that monitors th
1010

1111
## Citrix ADC CPX with the inbuilt Citrix ingress controller
1212

13-
In this deployment, you deploy Citrix ADC CPX with a builtin Citrix ingress controller agent that configures the Citrix ADC CPX. Citrix ADC CPX runs as pod and does North-South load balancing.
13+
In this deployment, you deploy Citrix ADC CPX with a built-in Citrix ingress controller agent that configures the Citrix ADC CPX. Citrix ADC CPX runs as pod and does North-South load balancing.
1414

1515
**YAML file for deployment:** ***citrix-k8s-cpx-ingress.yaml***
1616

@@ -219,12 +219,17 @@ Perform the following steps to deploy the Citrix ingress controller as a stand-a
219219
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.
220220
</details>
221221
222-
<details>
222+
<details>
223223
<summary> OPTIMIZE_ENDPOINT_BINDING</summary>
224224
225225
Enables or disables binding of back-end endpoints to a service group in a single API call. This variable is recommended when there are a large number of endpoints (pods) per application. Acceptable values are `True` and `False`. This environment variable is applicable only for Citrix ADC release 13.0–45.7 and higher versions.
226226
</details>
227-
227+
228+
<details>
229+
<summary> SCOPE</summary>
230+
Enables configuring the scope of Citrix ingress controller as `Role` or `ClusterRole` binding.
231+
You can set the value of the `SCOPE` environment variable as `local` or `cluster`. When you set this variable as `local`, Citrix ingress controller is deployed with `Role` binding that has limited privileges. You can use this option when you want to deploy Citrix ingress controller with minimal privileges for a particular namespace with `Role` binding. By default, the value of `SCOPE` is set as `cluster` and Citrix ingress controller is deployed with the `ClusterRole` binding.
232+
</details>
228233
229234
1. Deploy the Citrix ingress controller using the `kubectl create` command.
230235

docs/deploy/deploy-cic-yaml.md

Lines changed: 36 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ Citrix ingress controller configures the Citrix ADC appliance (MPX or VPX) using
3333
- Configure CS policies and actions
3434
- Configure Load Balancing (LB) virtual server
3535
- Configure Service groups
36-
- Cofigure SSl certkeys
36+
- Cofigure SSL certkeys
3737
- Configure routes
3838
- Configure user monitors
3939
- Add system file (for uploading SSL certkeys from Kubernetes)
@@ -70,7 +70,6 @@ To create the system user account, perform the following:
7070

7171
^(?!shell)(?!sftp)(?!scp)(?!batch)(?!source)(?!.*superuser)(?!.*nsroot)(?!install)(?!show\s+system\s+(user|cmdPolicy|file))(?!(set|add|rm|create|export|kill)\s+system)(?!(unbind|bind)\s+system\s+(user|group))(?!diff\s+ns\s+config)(?!(set|unset|add|rm|bind|unbind|switch)\s+ns\s+partition).*|(^install\s*(wi|wf))|(^\S+\s+system\s+file)^(?!shell)(?!sftp)(?!scp)(?!batch)(?!source)(?!.*superuser)(?!.*nsroot)(?!install)(?!show\s+system\s+(user|cmdPolicy|file))(?!(set|add|rm|create|export|kill)\s+system)(?!(unbind|bind)\s+system\s+(user|group))(?!diff\s+ns\s+config)(?!(set|unset|add|rm|bind|unbind|switch)\s+ns\s+partition).*|(^install\s*(wi|wf))|(^\S+\s+system\s+file)
7272

73-
7473
1. Bind the policy to the system user account using the following command:
7574

7675
bind system user cic cic-policy 0
@@ -100,9 +99,9 @@ Perform the following:
10099
| 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.|
101100
|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`.|
102101
|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. |
102+
| 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). |
103+
| 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. |
104+
| SCOPE | Optional | Enables configuring the scope of Citrix ingress controller as `Role` or `ClusterRole` binding. You can set the value of the `SCOPE` environment variable as `local` or `cluster`. When you set this variable as `local`, Citrix ingress controller is deployed with `Role` binding that has limited privileges. You can use this option when you want to deploy Citrix ingress controller with minimal privileges for a particular namespace with `Role` binding. By default, the value of `SCOPE` is set as `cluster` and Citrix ingress controller is deployed with `ClusterRole` binding. |
106105

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

@@ -182,53 +181,68 @@ A role can be defined within a namespace with a `Role`, or cluster-wide with a `
182181

183182
In Kubernetes, you can create multiple virtual clusters on the same physical cluster. Namespaces provides a way to divide cluster resources between multiple users and useful in environments with many users spread across multiple teams, or projects.
184183

185-
By default, the Citrix ingress controller monitors Ingress resources across all namespaces in the Kubernetes cluster. If multiple teams want to manage the same Citrix ADC, they can deploy a `Role` based Citrix ingress controller to monitor only ingress resources belongs to a specific namespace. This namespace must be same as the namespace you have provided for creating the service account.
184+
By default, the Citrix ingress controller monitors Ingress resources across all namespaces in the Kubernetes cluster. If multiple teams want to manage the same Citrix ADC, they can deploy a `Role` based Citrix ingress controller to monitor only ingress resources belongs to a specific namespace. This namespace must be the same as the namespace you have provided for creating the service account.
186185
You need to create a Role and bind the role to the service account for the Citrix ingress controller. In this case, the Citrix ingress controller listens only for events from the specified namespace and then configure the Citrix ADC accordingly.
187186

187+
You can use the `SCOPE` environment variable to configure the scope of Citrix ingress controller as `Role` or `ClusterRole` binding. You can set the value of the `SCOPE` environment variable as `local` or `cluster`. When you set this variable as `local`, Citrix ingress controller is deployed with minimal privileges for a particular namespace with `Role` binding. By default, the value of `SCOPE` is set as `cluster` and Citrix ingress controller is deployed with the `ClusterRole` binding.
188+
188189
The following example shows a sample YAML file which defines a Role and RoleBinding for deploying a Citrix ingress controller for a specific namespace.
189190

190191
```yaml
191192
kind: Role
192193
apiVersion: rbac.authorization.k8s.io/v1
193194
metadata:
194-
name: cic-k8s-role
195+
name: citrix
195196
rules:
196197
- apiGroups: [""]
197-
resources: ["endpoints", "ingresses", "pods", "secrets", "nodes", "routes", "namespaces"]
198+
resources: ["endpoints", "pods", "secrets", "nodes", "routes", "namespaces", "configmaps", "services"]
198199
verbs: ["get", "list", "watch"]
199-
# services/status is needed to update the loadbalancer IP in service status for integrating
200-
# service of type LoadBalancer with external-dns
201200
- apiGroups: [""]
202201
resources: ["services/status"]
203202
verbs: ["patch"]
204203
- apiGroups: [""]
205-
resources: ["services"]
206-
verbs: ["get", "list", "watch", "patch"]
204+
resources: ["events"]
205+
verbs: ["create"]
207206
- apiGroups: ["extensions"]
208207
resources: ["ingresses", "ingresses/status"]
208+
verbs: ["get", "list", "watch", "patch"]
209+
- apiGroups: ["networking.k8s.io"]
210+
resources: ["ingresses", "ingresses/status", "ingressclasses"]
211+
verbs: ["get", "list", "watch", "patch"]
212+
- apiGroups: ["apiextensions.k8s.io"]
213+
resources: ["customresourcedefinitions"]
209214
verbs: ["get", "list", "watch"]
210215
- apiGroups: ["apps"]
211216
resources: ["deployments"]
212217
verbs: ["get", "list", "watch"]
213-
218+
- apiGroups: ["citrix.com"]
219+
resources: ["rewritepolicies", "authpolicies", "ratelimits", "listeners", "httproutes", "continuousdeployments", "apigatewaypolicies", "wafs", "bots", "corspolicies", "appqoepolicies"]
220+
verbs: ["get", "list", "watch", "create", "delete", "patch"]
221+
- apiGroups: ["citrix.com"]
222+
resources: ["rewritepolicies/status", "continuousdeployments/status", "authpolicies/status", "ratelimits/status", "listeners/status", "httproutes/status", "wafs/status", "apigatewaypolicies/status", "bots/status", "corspolicies/status", "appqoepolicies/status"]
223+
verbs: ["patch"]
224+
- apiGroups: ["citrix.com"]
225+
resources: ["vips"]
226+
verbs: ["get", "list", "watch", "create", "delete"]
227+
- apiGroups: ["route.openshift.io"]
228+
resources: ["routes"]
229+
verbs: ["get", "list", "watch"]
230+
- apiGroups: ["crd.projectcalico.org"]
231+
resources: ["ipamblocks"]
232+
verbs: ["get", "list", "watch"]
214233
---
215-
216234
kind: RoleBinding
217235
apiVersion: rbac.authorization.k8s.io/v1
218236
metadata:
219-
name: cic-k8s-role
220-
namespace: default
237+
name: citrix
221238
roleRef:
222239
apiGroup: rbac.authorization.k8s.io
223240
kind: Role
224-
name: cic-k8s-role
225-
241+
name: citrix
226242
subjects:
227243
- kind: ServiceAccount
228-
name: cic-k8s-role
229-
namespace: default
230-
231-
---
244+
name: citrix
245+
namespace: test
232246
```
233247
234248
### Restrictions

0 commit comments

Comments
 (0)