Skip to content

Commit c1ea63f

Browse files
authored
Merge pull request #478 from citrix/cic-release-1.19
changes for CIC release 1.19.6 and sample configuration files for GitOps
2 parents df1bb3f + f8862cf commit c1ea63f

18 files changed

Lines changed: 1536 additions & 60 deletions

deployment/baremetal/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ Perform the following steps to deploy the Citrix ingress controller as a stand-a
104104
105105
These environment variables define the protocol and port used by the Citrix ingress controller to communicate with the Citrix ADC.
106106
107-
By default NS_PROTOCOL is HTTP and NS_PORT is 80. Other option is to use HTTPS and port 443.
107+
By default NS_PROTOCOL is HTTPS and NS_PORT is 443.
108108
</details>
109109
<details>
110110
<summary>Ingress Class</summary>

deployment/openshift/README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,14 @@ For information on deploying the Citrix ingress controller to control the OpenSh
3232

3333
You can use Citrix ADC for load balancing Openshift control plane (master nodes). Citrix provides a solution to automate the configuration of Citrix ADC using Terraform instead of manually configuring the Citrix ADC. For more information, see [Citrix ADC as a load balancer for the OpenShift control plane](https://github.com/citrix/citrix-k8s-ingress-controller/blob/master/deployment/openshift/citrix-adc-for-control-plane/README.md).
3434

35+
**Note:**
36+
OpenShift support of alternate backends is now supported by Citrix ingress controller. Citrix ADC is configured according to the weights provided in the routes definition and traffic is distributed among the service pods based on those weights.
3537

3638
## Supported Citrix components on OpenShift
3739

3840
| Citrix components | Versions |
3941
| ----------------- | -------- |
40-
| Citrix ingress controller | Latest (1.4.0) |
42+
| Citrix ingress controller | Latest |
4143
| Citrix ADC VPX | 12.1 50.x and later |
4244
| Citrix ADC CPX | 13.0–36.28 |
4345

@@ -84,6 +86,8 @@ You can use the [cic.yaml](https://raw.githubusercontent.com/citrix/citrix-k8s-i
8486

8587
**Note:** The Citrix ADC MPX or VPX can be deployed in *[standalone](https://docs.citrix.com/en-us/citrix-adc/12-1/getting-started-with-citrix-adc.html)*, *[high-availability](https://docs.citrix.com/en-us/citrix-adc/12-1/getting-started-with-citrix-adc/configure-ha-first-time.html)*, or *[clustered](https://docs.citrix.com/en-us/citrix-adc/12-1/clustering.html)* modes.
8688

89+
**Note:** In the latest versions of OpenShift when OVN CNI is used, `—feature-node-watch` might not work. In that case, you must manually configure the static routes on Citrix ADC VPX.
90+
8791
### Prerequisites
8892

8993
- Determine the IP address needed by the Citrix ingress controller to communicate with the Citrix ADC appliance. The IP address might be any one of the following depending on the type of Citrix ADC deployment:

docs/certificate-management/tls-certificates.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@ The Citrix ingress controller default certificate is used to provide a secret on
5959

6060
--default-ssl-certificate <NAMESPACE>/<SECRET_NAME>
6161

62+
**Note:**
63+
The Citrix ingress controller default certficate is supported for Openshift routes.
64+
6265
The following is a sample Citrix ingress controller YAML definition file that contains a TLS secret (`hotdrink.secret`) picked from the `ssl` namespace and provided as the Citrix ingress controller default certificate.
6366

6467
!!! note "Note"

docs/configure/profiles.md

Lines changed: 187 additions & 55 deletions
Large diffs are not rendered by default.

docs/deploy/deploy-api-gateway-using-gitops.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,10 @@ spec:
217217
- api_key: introspect-auth-provider
218218
```
219219
220+
## Sample configuration for deploying Citrix API gateway with GitOps
221+
222+
For a sample configuration for deploying Citrix API gateway with GitOps, see [Sample configuration for deploying Citrix API gateway with GitOps](../../example/git-ops/README.md).
223+
220224
## Support for web insight based analytics
221225
222226
Web insight based analytics is now supported with the API gateway CRD. When you use GitOps, the following web insight parameters are enabled by default:
@@ -225,4 +229,4 @@ Web insight based analytics is now supported with the API gateway CRD. When you
225229
- `httpuseragent`
226230
- `httphost`
227231
- `httpmethod`
228-
- `httpcontenttype`
232+
- `httpcontenttype`

docs/deploy/deploy-cic-openshift.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
b Deploy the Citrix ingress controller as an OpenShift router plug-in
1+
# Deploy the Citrix ingress controller as an OpenShift router plug-in
22

33
In an OpenShift cluster, external clients need a way to access the services provided by pods. OpenShift provides two resources for communicating with services running in the cluster: [routes](https://docs.openshift.com/container-platform/3.11/architecture/networking/routes.html) and [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/).
44

@@ -32,12 +32,14 @@ For information on deploying the Citrix ingress controller to control the OpenSh
3232

3333
You can use Citrix ADC for load balancing Openshift control plane (master nodes). Citrix provides a solution to automate the configuration of Citrix ADC using Terraform instead of manually configuring the Citrix ADC. For more information, see [Citrix ADC as a load balancer for the OpenShift control plane](https://github.com/citrix/citrix-k8s-ingress-controller/blob/master/deployment/openshift/citrix-adc-for-control-plane/README.md).
3434

35+
**Note:**
36+
OpenShift support of alternate backends is now supported by Citrix ingress controller. Citrix ADC is configured according to the weights provided in the routes definition and traffic is distributed among the service pods based on those weights.
3537

3638
## Supported Citrix components on OpenShift
3739

3840
| Citrix components | Versions |
3941
| ----------------- | -------- |
40-
| Citrix ingress controller | Latest (1.4.0) |
42+
| Citrix ingress controller | Latest |
4143
| Citrix ADC VPX | 12.1 50.x and later |
4244
| Citrix ADC CPX | 13.0–36.28 |
4345

@@ -85,6 +87,8 @@ You can use the [cic.yaml](https://raw.githubusercontent.com/citrix/citrix-k8s-i
8587

8688
**Note:** The Citrix ADC MPX or VPX can be deployed in *[standalone](https://docs.citrix.com/en-us/citrix-adc/12-1/getting-started-with-citrix-adc.html)*, *[high-availability](https://docs.citrix.com/en-us/citrix-adc/12-1/getting-started-with-citrix-adc/configure-ha-first-time.html)*, or *[clustered](https://docs.citrix.com/en-us/citrix-adc/12-1/clustering.html)* modes.
8789

90+
**Note:** In the latest versions of OpenShift when OVN CNI is used, `—feature-node-watch` might not work. In that case, you must manually configure the static routes on Citrix ADC VPX.
91+
8892
### Prerequisites
8993

9094
- Determine the IP address needed by the Citrix ingress controller to communicate with the Citrix ADC appliance. The IP address might be any one of the following depending on the type of Citrix ADC deployment:

example/git-ops/README.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# Sample configuration for deploying Citrix API gateway with GitOps
2+
3+
This topic provides a sample configuration for deploying Citrix API gateway with GitOps.
4+
GitOps is supported with the following CRDs for APIs and security information specified in the Swagger files on Git.
5+
6+
- rewritepolicy
7+
8+
- ratelimit
9+
10+
- authpolicy
11+
12+
- waf
13+
14+
- bot
15+
16+
1. Create a Kubernetes secret with the login information for your Citrix ADC.
17+
18+
kubectl create secret generic nslogin --from-literal=username=<username> --from-literal=password=<password>
19+
20+
>**Note:**
21+
>Replace `username` and `password` with the login credentials of your Citrix ADC VPX.
22+
23+
1. Deploy Citrix ingress controller and apply CRD definition files through the following Helm commands:
24+
25+
helm repo add citrix https://citrix.github.io/citrix-helm-charts/
26+
helm install cic citrix/citrix-ingress-controller --set nsIP=<NSIP>,license.accept=yes,adcCredentialSecret=nslogin,nodeWatch=true,crds.install=true
27+
28+
>**Note:**
29+
>Replace `NSIP` with Citrix ADC VPX IP address.
30+
31+
To install a specific version of the Helm chart (for example: 1.18.15), use the following command:
32+
33+
helm install cic citrix/citrix-ingress-controller --set nsIP=<NSIP>,license.accept=yes,adcCredentialSecret=nslogin,crds.install=true --version 1.18.5
34+
35+
1. Copy the Swagger files provided in the [SwaggerFiles](./SwaggerFiles) folder to the Git repository.
36+
37+
1. Launch a sample application as a service.
38+
39+
kubectl apply -f echoserver.yaml
40+
41+
42+
>**Note**: In this example, [echoserver](./echoserver.yaml) is used as the sample application. This command creates the `echoserver` application as a service.
43+
44+
1. Apply the `rewritepolicy` CRD template file `rewrite-crd-prefixurl-rewrite.yaml` in the [TemplateCRDFiles](./TemplateCRDFiles) folder.
45+
46+
kubectl apply -f TemplateCRDFiles/rewrite-crd-prefixurl-rewrite.yaml
47+
48+
1. Create Kubernetes secret for the Git credentials.
49+
50+
kubectl apply -f secret.yaml
51+
>**Note:**
52+
>Replace the `username` and `password` with appropriate base64 encoded credentials in the s`ecret.yaml` file.
53+
54+
1. Create the API Gateway CRD instance.
55+
56+
kubectl apply -f api-gateway-crd-instance.yaml
57+
58+
Update the API gateway CRD instance file (api-gateway-crd-instance.yaml) with the following information:
59+
60+
- `repository`: Provide the GIT Repository information
61+
- `branch`: The branch on the Git repository that needs to be referred.
62+
- `files`:  The path of Swagger files to be monitored on Git.
63+
- `ipaddress`: Provide the Citrix ADC content switching virtual server VIP IP address (The listener IP address on Citrix ADC).
64+
- `port`: Provide the port information for the listener (For HTTP, port 80 and for HTTPS port 443).
65+
- `protocol`:  HTTP or HTTPS (If the protocol is HTTPS, then there is a need of certificate information to be provided as a secret).
66+
67+
1. Create a certificate for the Citrix ADC listener if the protocol is HTTPS.
68+
69+
kubectl create secret tls cert1 --key="cert.key" --cert="cert.crt"
70+
71+
>**Note:**
72+
Replace `cert.key` and `cert.crt` with the certificates to be used. If the protocol is HTTP, there is no need to create the secret.
73+
74+
1. Based on the protocol selected in the API Gateway CRD, try accessing the application through `http://ipaddress/v2/play/play_api` or `https://ipaddress/v2/play/play_api` URLs .
75+
76+
>**Note:**
77+
Replace `ipaddress` in the URL with the IP address of the Citrix ADC content switching virtual server VIP (the listener IP address on the Citrix ADC). Replace the `play_api` with the API that needs to be accessed (For example: `tennis)`.
78+
79+
1. Try to modify the Swagger file APIs on Git or the template rewritepolicy CRD to evaluate the GitOps functionality.
80+
81+
Similar to the way `rewritepolicy` is used for evaluation, you can validate `Ratelimit`, `Auth`, `WAF`, and `BOT` CRD functionalities by applying the corresponding template CRD shared in the `TemplateCRDFiles` directory.

0 commit comments

Comments
 (0)