diff --git a/canary/README.md b/canary/README.md
index 900b9397..b907ecf1 100644
--- a/canary/README.md
+++ b/canary/README.md
@@ -40,7 +40,7 @@ GitHub has many utilities available for integrating with other tools that form p
Following Citrix software versions are required for Citrix-Integrated Canary Deployment Solution:
-- Netscaler ingress controller build/version: `quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4`.
+- Netscaler ingress controller build/version: `quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10`.
- Netscaler CPX version: `quay.io/netscaler/netscaler-cpx:14.1-25.111`.
- Netscaler Metrics Exporter version: `quay.io/netscaler/netscaler-adc-metrics-exporter:1.4.9`.
diff --git a/canary/manifest/cic-vpx.yaml b/canary/manifest/cic-vpx.yaml
index 77de9dcc..ebe9af62 100755
--- a/canary/manifest/cic-vpx.yaml
+++ b/canary/manifest/cic-vpx.yaml
@@ -8,7 +8,7 @@ spec:
serviceAccountName: cpx
containers:
- name: cic-k8s-ingress-controller
- image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4"
+ image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10"
env:
# Set NetScaler NSIP/SNIP, SNIP in case of HA (mgmt has to be enabled)
- name: "NS_IP"
diff --git a/canary/manifest/cpx-with-cic-sidecar.yml b/canary/manifest/cpx-with-cic-sidecar.yml
index c5edcc37..dab644d3 100755
--- a/canary/manifest/cpx-with-cic-sidecar.yml
+++ b/canary/manifest/cpx-with-cic-sidecar.yml
@@ -56,7 +56,7 @@ spec:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4
+ image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10
imagePullPolicy: Always
name: cic-k8s-ingress-controller
- args:
diff --git a/cd/canary-azure-devops/kubernetes_configs/cic_helm/README.md b/cd/canary-azure-devops/kubernetes_configs/cic_helm/README.md
index 47683b04..c4f36abc 100644
--- a/cd/canary-azure-devops/kubernetes_configs/cic_helm/README.md
+++ b/cd/canary-azure-devops/kubernetes_configs/cic_helm/README.md
@@ -291,7 +291,7 @@ The following table lists the mandatory and optional parameters that you can con
| Parameters | Mandatory or Optional | Default value | Description |
| --------- | --------------------- | ------------- | ----------- |
| license.accept | Mandatory | no | Set `yes` to accept the CIC end user license agreement. |
-| image | Mandatory | `quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4` | The CIC image. |
+| image | Mandatory | `quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10` | The CIC image. |
| pullPolicy | Mandatory | IfNotPresent | The CIC image pull policy. |
| adcCredentialSecret | Mandatory | N/A | The secret key to log on to the Netscaler VPX or MPX. For information on how to create the secret keys, see [Prerequisites](#prerequistes). |
| nsIP | Mandatory | N/A | The IP address of the Netscaler device. For details, see [Prerequisites](#prerequistes). |
diff --git a/cd/canary-azure-devops/kubernetes_configs/cic_helm/values.yaml b/cd/canary-azure-devops/kubernetes_configs/cic_helm/values.yaml
index 4787eac3..e7715645 100644
--- a/cd/canary-azure-devops/kubernetes_configs/cic_helm/values.yaml
+++ b/cd/canary-azure-devops/kubernetes_configs/cic_helm/values.yaml
@@ -3,7 +3,7 @@
# Declare variables to be passed into your templates.
# Netscaler ingress controller config details
-image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4
+image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10
pullPolicy: IfNotPresent
openshift: false
adcCredentialSecret:
diff --git a/crd/icap/icap-crd-deployment.yaml b/crd/icap/icap-crd-deployment.yaml
new file mode 100644
index 00000000..c26bc137
--- /dev/null
+++ b/crd/icap/icap-crd-deployment.yaml
@@ -0,0 +1,200 @@
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ name: icappolicies.citrix.com
+spec:
+ group: citrix.com
+ names:
+ kind: icappolicy
+ plural: icappolicies
+ singular: icappolicy
+ scope: Namespaced
+ versions:
+ - name: v1beta1
+ served: true
+ storage: true
+ subresources:
+ status: {}
+ additionalPrinterColumns:
+ - name: Status
+ type: string
+ description: "Current Status of the CRD"
+ jsonPath: .status.state
+ - name: Message
+ type: string
+ description: "Status Message"
+ jsonPath: .status.status_message
+ schema:
+ openAPIV3Schema:
+ type: object
+ properties:
+ status:
+ type: object
+ properties:
+ state:
+ type: string
+ status_message:
+ type: string
+ spec:
+ type: object
+ properties:
+ ingressclass:
+ description: "Ingress class, if not specified then all NetScaler ingress controllers in the cluster will process the resource otherwise only the controller with that ingress class will process this resource"
+ type: string
+ maxLength: 127
+ services:
+ type: array
+ description: 'Name of the services for which the icap policy needs to be bound'
+ items:
+ type: string
+ icap-servers:
+ type: object
+ description: "ICAP service for the ICAP server that will be part of the load balancing setup. The service that you add provides the ICAP connection between the NetScaler appliance and load balancing virtual servers."
+ properties:
+ servers:
+ type: array
+ items:
+ type: object
+ properties:
+ ip:
+ type: string
+ description: 'IP of the ICAP Server'
+ format: ipv4
+ port:
+ type: integer
+ description: 'Port number of the ICAP Server.'
+ minimum: 1
+ maximum: 65535
+ required:
+ - ip
+ - port
+ server-type:
+ type: string
+ description: 'Type of ICAP Server.'
+ enum: ['TCP', 'SSL_TCP']
+ default: 'SSL_TCP'
+ server_host_cert:
+ description: |+
+ 'Name of the SSL certificate to be used with ICAP server.
+ This certificate is mandatory for server-type SSL_TCP'
+ type: object
+ properties:
+ tls_secret:
+ type: string
+ description: 'Name of the Kubernetes Secret of type tls referring to Certificate'
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'
+ preconfigured:
+ type: string
+ maxLength: 63
+ description: |+
+ 'Preconfigured SSL certkey name on NetScaler with the
+ certificate and key already added on NetScaler'
+ oneOf:
+ - required: [tls_secret]
+ - required: [preconfigured]
+ required:
+ - servers
+ icap:
+ type: array
+ items:
+ type: object
+ properties:
+ preconfigured-profile:
+ description: 'Names of the preconfigured ICAP profile.'
+ type: string
+ maxLength: 127
+ direction:
+ description: 'ICAP Mode of operation. It is a mandatory argument while creating an icapprofile.'
+ type: string
+ enum: ['REQUEST','RESPONSE']
+ profile:
+ type: object
+ description: 'ICAP profile(s) of the NetScaler.'
+ properties:
+ preview:
+ description: 'Enable or Disable preview header with ICAP request. This feature allows an ICAP server to see the beginning of a transaction, then decide if it wants to opt-out of the transaction early instead of receiving the remainder of the request message.'
+ type: string
+ enum: ["ENABLED", "DISABLED"]
+ preview-length:
+ description: 'Value of Preview Header field. NetScaler uses the minimum of this set value and the preview size received on OPTIONS'
+ type: integer
+ minimum: 0
+ maximum: 4294967294
+ uri:
+ description: 'URI representing icap service. It is a mandatory argument while creating an icapprofile.'
+ type: string
+ maxLength: 511
+ host-header:
+ description: 'ICAP Host Header.'
+ type: string
+ maxLength: 255
+ user-agent-header:
+ description: 'ICAP User Agent Header'
+ type: string
+ maxLength: 255
+ query-params:
+ description: 'Query parameters to be included with ICAP request URI. Entered values should be in arg=value format. For more than one parameters, add & separated values. e.g.: arg1=val1&arg2=val2'
+ type: string
+ maxLength: 511
+ connection-keep-alive:
+ description: 'Enable or Disable sending Allow: 204 header in ICAP request.'
+ type: string
+ enum: ["ENABLED", "DISABLED"]
+ insert-icap-headers:
+ description: 'Insert custom ICAP headers in the ICAP request to send to ICAP server. The headers can be static or can be dynamically constructed using PI Policy Expression. For example, to send static user agent and Client''s IP address, the expression can be specified as "User-Agent: NS-ICAP-Client/V1.0r0-Client-IP: "+CLIENT.IP.SRC+"r0. The NetScaler does not check the validity of the specified header name-value. You must manually validate the specified header syntax.'
+ type: string
+ maxLength: 8191
+ insert-http-request:
+ description: 'Exact HTTP request, in the form of an expression, which the NetScaler encapsulates and sends to the ICAP server. If you set this parameter, the ICAP request is sent using only this header. This can be used when the HTTP header is not available to send or ICAP server only needs part of the incoming HTTP request. The request expression is constrained by the feature for which it is used. The NetScaler does not check the validity of this request. You must manually validate the request.'
+ type: string
+ maxLength: 8191
+ req-timeout:
+ description: 'Time, in seconds, within which the remote server should respond to the ICAP-request. If the Netscaler does not receive full response with this time, the specified request timeout action is performed. Zero value disables this timeout functionality.'
+ type: integer
+ minimum: 0
+ maximum: 86400
+ req-timeout-action:
+ description: 'Name of the action to perform if the Vserver/Server representing the remote service does not respond with any response within the timeout value configured. The Supported actions are * BYPASS - This Ignores the remote server response and sends the request/response to Client/Server. * If the ICAP response with Encapsulated headers is not received within the request-timeout value configured, this Ignores the remote ICAP server response and sends the Full request/response to Server/Client'
+ type: string
+ enum: ['BYPASS', 'DROP', 'RESET']
+ log-action:
+ description: 'Name of the audit message action which would be evaluated on receiving the ICAP response to emit the logs'
+ type: string
+ maxLength: 127
+ required:
+ - uri
+ content-inspection-criteria:
+ description: 'Expression that the policy uses to determine whether to execute the specified action.'
+ type: string
+ maxLength: 1499
+ default-action:
+ description: 'Action to perform if the result of policy evaluation is undefined (UNDEF). An UNDEF event indicates an internal error condition. Only the above built-in actions can be used'
+ type: string
+ maxLength: 127
+ log-action:
+ description: 'Name of the messagelog action to use for requests that match this policy.'
+ type: string
+ maxLength: 127
+ goto-priority-expression:
+ description: 'Expression or other value specifying the next policy to be evaluated if the current policy evaluates to TRUE.Specify one of the following values:* NEXT - Evaluate the policy with the next higher priority number.* END - End policy evaluation.Default value of goto-priority-expression: END'
+ type: string
+ operation:
+ description: 'Type of operation this action is going to perform. following actions are available to configure: * ICAP - forward the incoming request or response to an ICAP server for modification. * INLINEINSPECTION - forward the incoming or outgoing packets to IPS server for Intrusion Prevention. * MIRROR - Forwards cloned packets for Intrusion Detection. * NOINSPECTION - This does not forward incoming and outgoing packets to the Inspection device. * NSTRACE - capture current and further incoming packets on this transaction.'
+ type: string
+ enum: ['ICAP', 'INLINEINSPECTION', 'MIRROR', 'NOINSPECTION']
+ server-failure-action:
+ description: 'Name of the action to perform if the Vserver representing the remote service is not UP. This is not supported for NOINSPECTION Type. The Supported actions are: * RESET - Reset the client connection by closing it. The client program, such as a browser, will handle this and may inform the user. The client may then resend the request if desired. * DROP - Drop the request without sending a response to the user. * CONTINUE - It bypasses the ContentIsnpection and Continues/resumes the Traffic-Flow to Client/Server.'
+ type: string
+ enum: ['CONTINUE', 'DROP', 'RESET']
+ oneOf:
+ - required: [preconfigured-profile]
+ - required: [profile]
+ required:
+ - direction
+ - content-inspection-criteria
+ - operation
+ required:
+ - ingressclass
+ - services
+ - icap-servers
+ - icap
\ No newline at end of file
diff --git a/crd/nsic-crds.yaml b/crd/nsic-crds.yaml
index 6f80af00..079fdd03 100644
--- a/crd/nsic-crds.yaml
+++ b/crd/nsic-crds.yaml
@@ -603,11 +603,14 @@ spec:
type: string
kind:
type: string
- enum: ["service", "ingress"]
+ enum: ["service", "ingress", "listener"]
description:
type: string
range-name:
type: string
+ multicluster:
+ description: "The setting of this indicates that the VIP/csvserver IP address is shared by multiple netscaler ingress controllers on the VPX/MPX. For CPX, this field is not applicable"
+ type: boolean
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
@@ -2497,3 +2500,204 @@ spec:
resource records that are of the same record type
and belong to the specified domain name
---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ name: icappolicies.citrix.com
+spec:
+ group: citrix.com
+ names:
+ kind: icappolicy
+ plural: icappolicies
+ singular: icappolicy
+ scope: Namespaced
+ versions:
+ - name: v1beta1
+ served: true
+ storage: true
+ subresources:
+ status: {}
+ additionalPrinterColumns:
+ - name: Status
+ type: string
+ description: "Current Status of the CRD"
+ jsonPath: .status.state
+ - name: Message
+ type: string
+ description: "Status Message"
+ jsonPath: .status.status_message
+ schema:
+ openAPIV3Schema:
+ type: object
+ properties:
+ status:
+ type: object
+ properties:
+ state:
+ type: string
+ status_message:
+ type: string
+ spec:
+ type: object
+ properties:
+ ingressclass:
+ description: "Ingress class, if not specified then all NetScaler ingress controllers in the cluster will process the resource otherwise only the controller with that ingress class will process this resource"
+ type: string
+ maxLength: 127
+ services:
+ type: array
+ description: 'Name of the services for which the icap policy needs to be bound'
+ items:
+ type: string
+ icap-servers:
+ type: object
+ description: "ICAP service for the ICAP server that will be part of the load balancing setup. The service that you add provides the ICAP connection between the NetScaler appliance and load balancing virtual servers."
+ properties:
+ servers:
+ type: array
+ items:
+ type: object
+ properties:
+ ip:
+ type: string
+ description: 'IP of the ICAP Server'
+ format: ipv4
+ port:
+ type: integer
+ description: 'Port number of the ICAP Server.'
+ minimum: 1
+ maximum: 65535
+ required:
+ - ip
+ - port
+ server-type:
+ type: string
+ description: 'Type of ICAP Server.'
+ enum: ['TCP', 'SSL_TCP']
+ default: 'SSL_TCP'
+ server_host_cert:
+ description: |+
+ 'Name of the SSL certificate to be used with ICAP server.
+ This certificate is mandatory for server-type SSL_TCP'
+ type: object
+ properties:
+ tls_secret:
+ type: string
+ description: 'Name of the Kubernetes Secret of type tls referring to Certificate'
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$'
+ preconfigured:
+ type: string
+ maxLength: 63
+ description: |+
+ 'Preconfigured SSL certkey name on NetScaler with the
+ certificate and key already added on NetScaler'
+ oneOf:
+ - required: [tls_secret]
+ - required: [preconfigured]
+ required:
+ - servers
+ icap:
+ type: array
+ items:
+ type: object
+ properties:
+ preconfigured-profile:
+ description: 'Names of the preconfigured ICAP profile.'
+ type: string
+ maxLength: 127
+ direction:
+ description: 'ICAP Mode of operation. It is a mandatory argument while creating an icapprofile.'
+ type: string
+ enum: ['REQUEST','RESPONSE']
+ profile:
+ type: object
+ description: 'ICAP profile(s) of the NetScaler.'
+ properties:
+ preview:
+ description: 'Enable or Disable preview header with ICAP request. This feature allows an ICAP server to see the beginning of a transaction, then decide if it wants to opt-out of the transaction early instead of receiving the remainder of the request message.'
+ type: string
+ enum: ["ENABLED", "DISABLED"]
+ preview-length:
+ description: 'Value of Preview Header field. NetScaler uses the minimum of this set value and the preview size received on OPTIONS'
+ type: integer
+ minimum: 0
+ maximum: 4294967294
+ uri:
+ description: 'URI representing icap service. It is a mandatory argument while creating an icapprofile.'
+ type: string
+ maxLength: 511
+ host-header:
+ description: 'ICAP Host Header.'
+ type: string
+ maxLength: 255
+ user-agent-header:
+ description: 'ICAP User Agent Header'
+ type: string
+ maxLength: 255
+ query-params:
+ description: 'Query parameters to be included with ICAP request URI. Entered values should be in arg=value format. For more than one parameters, add & separated values. e.g.: arg1=val1&arg2=val2'
+ type: string
+ maxLength: 511
+ connection-keep-alive:
+ description: 'Enable or Disable sending Allow: 204 header in ICAP request.'
+ type: string
+ enum: ["ENABLED", "DISABLED"]
+ insert-icap-headers:
+ description: 'Insert custom ICAP headers in the ICAP request to send to ICAP server. The headers can be static or can be dynamically constructed using PI Policy Expression. For example, to send static user agent and Client''s IP address, the expression can be specified as "User-Agent: NS-ICAP-Client/V1.0r0-Client-IP: "+CLIENT.IP.SRC+"r0. The NetScaler does not check the validity of the specified header name-value. You must manually validate the specified header syntax.'
+ type: string
+ maxLength: 8191
+ insert-http-request:
+ description: 'Exact HTTP request, in the form of an expression, which the NetScaler encapsulates and sends to the ICAP server. If you set this parameter, the ICAP request is sent using only this header. This can be used when the HTTP header is not available to send or ICAP server only needs part of the incoming HTTP request. The request expression is constrained by the feature for which it is used. The NetScaler does not check the validity of this request. You must manually validate the request.'
+ type: string
+ maxLength: 8191
+ req-timeout:
+ description: 'Time, in seconds, within which the remote server should respond to the ICAP-request. If the Netscaler does not receive full response with this time, the specified request timeout action is performed. Zero value disables this timeout functionality.'
+ type: integer
+ minimum: 0
+ maximum: 86400
+ req-timeout-action:
+ description: 'Name of the action to perform if the Vserver/Server representing the remote service does not respond with any response within the timeout value configured. The Supported actions are * BYPASS - This Ignores the remote server response and sends the request/response to Client/Server. * If the ICAP response with Encapsulated headers is not received within the request-timeout value configured, this Ignores the remote ICAP server response and sends the Full request/response to Server/Client'
+ type: string
+ enum: ['BYPASS', 'DROP', 'RESET']
+ log-action:
+ description: 'Name of the audit message action which would be evaluated on receiving the ICAP response to emit the logs'
+ type: string
+ maxLength: 127
+ required:
+ - uri
+ content-inspection-criteria:
+ description: 'Expression that the policy uses to determine whether to execute the specified action.'
+ type: string
+ maxLength: 1499
+ default-action:
+ description: 'Action to perform if the result of policy evaluation is undefined (UNDEF). An UNDEF event indicates an internal error condition. Only the above built-in actions can be used'
+ type: string
+ maxLength: 127
+ log-action:
+ description: 'Name of the messagelog action to use for requests that match this policy.'
+ type: string
+ maxLength: 127
+ goto-priority-expression:
+ description: 'Expression or other value specifying the next policy to be evaluated if the current policy evaluates to TRUE.Specify one of the following values:* NEXT - Evaluate the policy with the next higher priority number.* END - End policy evaluation.Default value of goto-priority-expression: END'
+ type: string
+ operation:
+ description: 'Type of operation this action is going to perform. following actions are available to configure: * ICAP - forward the incoming request or response to an ICAP server for modification. * INLINEINSPECTION - forward the incoming or outgoing packets to IPS server for Intrusion Prevention. * MIRROR - Forwards cloned packets for Intrusion Detection. * NOINSPECTION - This does not forward incoming and outgoing packets to the Inspection device. * NSTRACE - capture current and further incoming packets on this transaction.'
+ type: string
+ enum: ['ICAP', 'INLINEINSPECTION', 'MIRROR', 'NOINSPECTION']
+ server-failure-action:
+ description: 'Name of the action to perform if the Vserver representing the remote service is not UP. This is not supported for NOINSPECTION Type. The Supported actions are: * RESET - Reset the client connection by closing it. The client program, such as a browser, will handle this and may inform the user. The client may then resend the request if desired. * DROP - Drop the request without sending a response to the user. * CONTINUE - It bypasses the ContentIsnpection and Continues/resumes the Traffic-Flow to Client/Server.'
+ type: string
+ enum: ['CONTINUE', 'DROP', 'RESET']
+ oneOf:
+ - required: [preconfigured-profile]
+ - required: [profile]
+ required:
+ - direction
+ - content-inspection-criteria
+ - operation
+ required:
+ - ingressclass
+ - services
+ - icap-servers
+ - icap
+---
\ No newline at end of file
diff --git a/crd/vip/vip.yaml b/crd/vip/vip.yaml
index 0c894070..5420d863 100644
--- a/crd/vip/vip.yaml
+++ b/crd/vip/vip.yaml
@@ -47,8 +47,11 @@ spec:
type: string
kind:
type: string
- enum: ["service", "ingress"]
+ enum: ["service", "ingress", "listener"]
description:
type: string
range-name:
type: string
+ multicluster:
+ description: "The setting of this indicates that the VIP/csvserver IP address is shared by multiple netscaler ingress controllers on the VPX/MPX. For CPX, this field is not applicable"
+ type: boolean
\ No newline at end of file
diff --git a/deployment/anthos/manifest/dual-tiered-ingress/cic.yaml b/deployment/anthos/manifest/dual-tiered-ingress/cic.yaml
index 07e3e435..f2520feb 100644
--- a/deployment/anthos/manifest/dual-tiered-ingress/cic.yaml
+++ b/deployment/anthos/manifest/dual-tiered-ingress/cic.yaml
@@ -91,7 +91,7 @@ spec:
serviceAccountName: cic-k8s-role
containers:
- name: cic-k8s-ingress-controller
- image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4"
+ image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10"
env:
# Set NetScaler NSIP/SNIP, SNIP in case of HA (mgmt has to be enabled)
- name: "NS_IP"
diff --git a/deployment/anthos/manifest/dual-tiered-ingress/cpx-cic.yaml b/deployment/anthos/manifest/dual-tiered-ingress/cpx-cic.yaml
index c9888d55..17d03565 100644
--- a/deployment/anthos/manifest/dual-tiered-ingress/cpx-cic.yaml
+++ b/deployment/anthos/manifest/dual-tiered-ingress/cpx-cic.yaml
@@ -130,7 +130,7 @@ spec:
name: cpx-volume-conf
# Add cic as a sidecar
- name: cic
- image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4
+ image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10
volumeMounts:
- mountPath: /var/deviceinfo
name: shared-data
diff --git a/deployment/anthos/manifest/service-type-lb/cic.yaml b/deployment/anthos/manifest/service-type-lb/cic.yaml
index 51916232..cc90bb55 100644
--- a/deployment/anthos/manifest/service-type-lb/cic.yaml
+++ b/deployment/anthos/manifest/service-type-lb/cic.yaml
@@ -91,7 +91,7 @@ spec:
serviceAccountName: cic-k8s-role
containers:
- name: cic-k8s-ingress-controller
- image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4"
+ image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10"
env:
# Set NetScaler NSIP/SNIP, SNIP in case of HA (mgmt has to be enabled)
- name: "NS_IP"
diff --git a/deployment/anthos/manifest/service-type-lb/cpx-cic.yaml b/deployment/anthos/manifest/service-type-lb/cpx-cic.yaml
index c9888d55..17d03565 100644
--- a/deployment/anthos/manifest/service-type-lb/cpx-cic.yaml
+++ b/deployment/anthos/manifest/service-type-lb/cpx-cic.yaml
@@ -130,7 +130,7 @@ spec:
name: cpx-volume-conf
# Add cic as a sidecar
- name: cic
- image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4
+ image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10
volumeMounts:
- mountPath: /var/deviceinfo
name: shared-data
diff --git a/deployment/aws/manifest/all-in-one.yaml b/deployment/aws/manifest/all-in-one.yaml
index 99ea2437..9558f668 100644
--- a/deployment/aws/manifest/all-in-one.yaml
+++ b/deployment/aws/manifest/all-in-one.yaml
@@ -164,7 +164,7 @@ spec:
name: cpx-volume-conf
# Add cic as a sidecar
- name: cic
- image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4
+ image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10
volumeMounts:
- mountPath: /var/deviceinfo
name: shared-data
diff --git a/deployment/aws/manifest/citrix-ingress-controller.yaml b/deployment/aws/manifest/citrix-ingress-controller.yaml
index 23163c76..27a7569c 100644
--- a/deployment/aws/manifest/citrix-ingress-controller.yaml
+++ b/deployment/aws/manifest/citrix-ingress-controller.yaml
@@ -78,7 +78,7 @@ spec:
serviceAccountName: cic-k8s-role
containers:
- name: cic-k8s-ingress-controller-1
- image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4"
+ image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10"
env:
# Set NetScaler NSIP/SNIP, SNIP in case of HA (mgmt has to be enabled)
- name: "NS_IP"
@@ -117,7 +117,7 @@ spec:
serviceAccountName: cic-k8s-role
containers:
- name: cic-k8s-ingress-controller-2
- image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4"
+ image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10"
env:
# Set NetScaler NSIP/SNIP, SNIP in case of HA (mgmt has to be enabled)
- name: "NS_IP"
diff --git a/deployment/aws/manifest/standalone_cpx.yaml b/deployment/aws/manifest/standalone_cpx.yaml
index 43bbeb7a..728a6de4 100644
--- a/deployment/aws/manifest/standalone_cpx.yaml
+++ b/deployment/aws/manifest/standalone_cpx.yaml
@@ -130,7 +130,7 @@ spec:
name: cpx-volume-conf
# Add cic as a sidecar
- name: cic
- image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4
+ image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10
volumeMounts:
- mountPath: /var/deviceinfo
name: shared-data
diff --git a/deployment/azure/manifest/all-in-one.yaml b/deployment/azure/manifest/all-in-one.yaml
index 3e5bf685..6c3325da 100644
--- a/deployment/azure/manifest/all-in-one.yaml
+++ b/deployment/azure/manifest/all-in-one.yaml
@@ -166,7 +166,7 @@ spec:
name: cpx-volume-conf
# Add cic as a sidecar
- name: cic
- image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4
+ image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10
volumeMounts:
- mountPath: /var/deviceinfo
name: shared-data
diff --git a/deployment/azure/manifest/standalone_cpx.yaml b/deployment/azure/manifest/standalone_cpx.yaml
index 43bbeb7a..728a6de4 100644
--- a/deployment/azure/manifest/standalone_cpx.yaml
+++ b/deployment/azure/manifest/standalone_cpx.yaml
@@ -130,7 +130,7 @@ spec:
name: cpx-volume-conf
# Add cic as a sidecar
- name: cic
- image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4
+ image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10
volumeMounts:
- mountPath: /var/deviceinfo
name: shared-data
diff --git a/deployment/baremetal/README.md b/deployment/baremetal/README.md
index ff406dd7..d2a63f22 100644
--- a/deployment/baremetal/README.md
+++ b/deployment/baremetal/README.md
@@ -242,7 +242,7 @@ Perform the following steps to deploy the Netscaler ingress controller as a stan
This command pulls the latest image and brings up the Netscaler ingress controller.
- The official Netscaler ingress controller docker image is available at: `quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4`
+ The official Netscaler ingress controller docker image is available at: `quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10`
2. Configure reachability to the pod network using one of the following.
diff --git a/deployment/baremetal/citrix-k8s-cpx-ingress.yml b/deployment/baremetal/citrix-k8s-cpx-ingress.yml
index 0c22e8db..910ad7f8 100644
--- a/deployment/baremetal/citrix-k8s-cpx-ingress.yml
+++ b/deployment/baremetal/citrix-k8s-cpx-ingress.yml
@@ -115,7 +115,7 @@ spec:
name: cpx-volume-conf
# Add cic as a sidecar
- name: cic
- image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4
+ image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10
volumeMounts:
- mountPath: /var/deviceinfo
name: shared-data
diff --git a/deployment/baremetal/citrix-k8s-ingress-controller.yaml b/deployment/baremetal/citrix-k8s-ingress-controller.yaml
index db8a2653..de06c0dc 100644
--- a/deployment/baremetal/citrix-k8s-ingress-controller.yaml
+++ b/deployment/baremetal/citrix-k8s-ingress-controller.yaml
@@ -91,7 +91,7 @@ spec:
serviceAccountName: cic-k8s-role
containers:
- name: cic-k8s-ingress-controller
- image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4"
+ image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10"
env:
# Set NetScaler NSIP/SNIP, SNIP in case of HA (mgmt has to be enabled)
- name: "NS_IP"
diff --git a/deployment/baremetal/yaml-cpx-crediential-changes/cpx-cic-previous.yaml b/deployment/baremetal/yaml-cpx-crediential-changes/cpx-cic-previous.yaml
index 2effbe4e..6bd74ef5 100644
--- a/deployment/baremetal/yaml-cpx-crediential-changes/cpx-cic-previous.yaml
+++ b/deployment/baremetal/yaml-cpx-crediential-changes/cpx-cic-previous.yaml
@@ -112,7 +112,7 @@ spec:
name: cpx-volume2
# Add cic as a sidecar
- name: cic
- image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4
+ image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10
args:
- --ingress-classes
citrix
diff --git a/deployment/dual-tier/manifest/all-in-one-dual-tier-demo.yaml b/deployment/dual-tier/manifest/all-in-one-dual-tier-demo.yaml
index fd7ddc4f..d4401eb0 100644
--- a/deployment/dual-tier/manifest/all-in-one-dual-tier-demo.yaml
+++ b/deployment/dual-tier/manifest/all-in-one-dual-tier-demo.yaml
@@ -163,7 +163,7 @@ spec:
name: cpx-volume-conf
# Add cic as a sidecar
- name: cic
- image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4
+ image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10
volumeMounts:
- mountPath: /var/deviceinfo
name: shared-data
@@ -346,7 +346,7 @@ spec:
serviceAccountName: cic-k8s-role
containers:
- name: cic-k8s-ingress-controller
- image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4"
+ image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10"
env:
# Set NetScaler NSIP/SNIP, SNIP in case of HA (mgmt has to be enabled)
- name: "NS_IP"
diff --git a/deployment/dual-tier/manifest/tier-1-vpx-cic.yaml b/deployment/dual-tier/manifest/tier-1-vpx-cic.yaml
index 2faa10dd..58326b86 100644
--- a/deployment/dual-tier/manifest/tier-1-vpx-cic.yaml
+++ b/deployment/dual-tier/manifest/tier-1-vpx-cic.yaml
@@ -99,7 +99,7 @@ spec:
serviceAccountName: cic-k8s-role
containers:
- name: cic-k8s-ingress-controller
- image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4"
+ image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10"
env:
# Set NetScaler NSIP/SNIP, SNIP in case of HA (mgmt has to be enabled)
- name: "NS_IP"
diff --git a/deployment/dual-tier/manifest/tier-2-cpx.yaml b/deployment/dual-tier/manifest/tier-2-cpx.yaml
index 1a5b040a..97aa5e2f 100644
--- a/deployment/dual-tier/manifest/tier-2-cpx.yaml
+++ b/deployment/dual-tier/manifest/tier-2-cpx.yaml
@@ -115,7 +115,7 @@ spec:
name: cpx-volume-conf
# Add cic as a sidecar
- name: cic
- image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4
+ image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10
volumeMounts:
- mountPath: /var/deviceinfo
name: shared-data
diff --git a/deployment/gcp/manifest/all-in-one.yaml b/deployment/gcp/manifest/all-in-one.yaml
index cab46bf4..f964101e 100644
--- a/deployment/gcp/manifest/all-in-one.yaml
+++ b/deployment/gcp/manifest/all-in-one.yaml
@@ -165,7 +165,7 @@ spec:
name: cpx-volume-conf
# Add cic as a sidecar
- name: cic
- image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4
+ image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10
volumeMounts:
- mountPath: /var/deviceinfo
name: shared-data
diff --git a/deployment/gcp/manifest/standalone_cpx.yaml b/deployment/gcp/manifest/standalone_cpx.yaml
index 04635123..6e591778 100644
--- a/deployment/gcp/manifest/standalone_cpx.yaml
+++ b/deployment/gcp/manifest/standalone_cpx.yaml
@@ -134,7 +134,7 @@ spec:
name: cpx-volume-conf
# Add cic as a sidecar
- name: cic
- image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4
+ image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10
volumeMounts:
- mountPath: /var/deviceinfo
name: shared-data
diff --git a/deployment/openshift/manifest/cic.yaml b/deployment/openshift/manifest/cic.yaml
index 2e86812f..5c7bed3b 100644
--- a/deployment/openshift/manifest/cic.yaml
+++ b/deployment/openshift/manifest/cic.yaml
@@ -97,7 +97,7 @@ spec:
serviceAccount: citrix
containers:
- name: cic
- image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4"
+ image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10"
securityContext:
privileged: true
env:
diff --git a/deployment/openshift/manifest/cpx_cic_side_car.yaml b/deployment/openshift/manifest/cpx_cic_side_car.yaml
index b269fc60..b0ff43d6 100644
--- a/deployment/openshift/manifest/cpx_cic_side_car.yaml
+++ b/deployment/openshift/manifest/cpx_cic_side_car.yaml
@@ -112,7 +112,7 @@ spec:
imagePullPolicy: IfNotPresent
# Add cic as a sidecar
- name: cic
- image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4"
+ image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10"
volumeMounts:
- mountPath: /var/deviceinfo
name: shared-data
diff --git a/docs/canary/canary.md b/docs/canary/canary.md
index 63bc74f8..72bda2ce 100644
--- a/docs/canary/canary.md
+++ b/docs/canary/canary.md
@@ -40,7 +40,7 @@ GitHub has many utilities available for integrating with other tools that form p
Following Citrix software versions are required for Citrix-Integrated Canary Deployment Solution:
-- Netscaler ingress controller build/version: `quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4`.
+- Netscaler ingress controller build/version: `quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10`.
- Netscaler CPX version: `quay.io/netscaler/netscaler-cpx:14.1-25.111`.
- Netscaler Metrics Exporter version: `quay.io/netscaler/netscaler-adc-metrics-exporter:1.4.9`.
diff --git a/docs/configure/config-map.md b/docs/configure/config-map.md
index b7adfc4f..616f50ed 100644
--- a/docs/configure/config-map.md
+++ b/docs/configure/config-map.md
@@ -97,7 +97,7 @@ Perform the following to configure ConfigMap support for the Netscaler ingress c
serviceAccountName: cic-k8s-role
containers:
- name: cic-k8s-ingress-controller
- image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4"
+ image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10"
env:
# Set NetScaler NSIP/SNIP, SNIP in case of HA (mgmt has to be enabled)
- name: "NS_IP"
diff --git a/docs/configure/cpx-bgp-router/citrix-k8s-cpx-ingress.yml b/docs/configure/cpx-bgp-router/citrix-k8s-cpx-ingress.yml
index c5813006..76d92a60 100644
--- a/docs/configure/cpx-bgp-router/citrix-k8s-cpx-ingress.yml
+++ b/docs/configure/cpx-bgp-router/citrix-k8s-cpx-ingress.yml
@@ -88,7 +88,7 @@ spec:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4"
+ image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10"
imagePullPolicy: Always
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
diff --git a/docs/configure/ipam-for-ingress.md b/docs/configure/ipam-for-ingress.md
index a3f4c810..c7603e85 100644
--- a/docs/configure/ipam-for-ingress.md
+++ b/docs/configure/ipam-for-ingress.md
@@ -57,7 +57,7 @@ Perform the following steps to deploy the Netscaler ingress controller with the
serviceAccountName: cic-k8s-role
containers:
- name: cic-k8s-ingress-controller
- image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4"
+ image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10"
env:
- name: "NS_IP"
value: "x.x.x.x"
@@ -119,7 +119,7 @@ Perform the following steps to deploy the Netscaler ingress controller with the
serviceAccountName: citrix-ipam-controller
containers:
- name: citrix-ipam-controller
- image: quay.io/citrix/citrix-ipam-controller:1.2.0
+ image: quay.io/netscaler/netscaler-ipam-controller:2.0.1
env:
# This IPAM controller takes envirnment variable VIP_RANGE. IPs in this range are used to assign values for IP range
- name: "VIP_RANGE"
diff --git a/docs/configure/log-levels.md b/docs/configure/log-levels.md
index 5d1875d0..4c6448d8 100644
--- a/docs/configure/log-levels.md
+++ b/docs/configure/log-levels.md
@@ -21,7 +21,7 @@ spec:
serviceAccountName: cpx
containers:
- name: citrixingresscontroller
- image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4"
+ image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10"
env:
# Set kube api-server URL
- name: "kubernetes_url"
diff --git a/docs/how-to/hpa/values.sh b/docs/how-to/hpa/values.sh
index 16c6d72c..7a5f1c95 100755
--- a/docs/how-to/hpa/values.sh
+++ b/docs/how-to/hpa/values.sh
@@ -1,6 +1,6 @@
VPX_IP="VPX_IP"
CPX_IMAGE="quay.io/netscaler/netscaler-cpx:14.1-25.111"
-CIC_IMAGE="quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4"
+CIC_IMAGE="quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10"
EXPORTER="quay.io/citrix/citrix-adc-metrics-exporter:1.4.9"
VPX_PASSWORD="VPX_PASSWORD"
VPX_VIP="VIRTUAL_IP_VPX"
diff --git a/docs/how-to/sml/example/hipster-smlite-all-in-one-dual-tier.yaml b/docs/how-to/sml/example/hipster-smlite-all-in-one-dual-tier.yaml
index bd376674..f11a5e7d 100644
--- a/docs/how-to/sml/example/hipster-smlite-all-in-one-dual-tier.yaml
+++ b/docs/how-to/sml/example/hipster-smlite-all-in-one-dual-tier.yaml
@@ -1297,7 +1297,7 @@ spec:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4
+ image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10
imagePullPolicy: Always
name: cic
serviceAccountName: citrix
@@ -1547,7 +1547,7 @@ spec:
secretKeyRef:
key: password
name:
- image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4
+ image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10
imagePullPolicy: Always
name: cic-k8s-ingress-controller
serviceAccountName: cic-k8s-role
diff --git a/docs/how-to/sml/example/hipster-smlite-all-in-one-unified-ingress.yaml b/docs/how-to/sml/example/hipster-smlite-all-in-one-unified-ingress.yaml
index 1278be55..33d79f7f 100644
--- a/docs/how-to/sml/example/hipster-smlite-all-in-one-unified-ingress.yaml
+++ b/docs/how-to/sml/example/hipster-smlite-all-in-one-unified-ingress.yaml
@@ -1313,7 +1313,7 @@ spec:
name:
- name: EULA
value: 'yes'
- image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4
+ image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10
imagePullPolicy: Always
name: cic-k8s-ingress-controller
serviceAccountName: cic-k8s-role
diff --git a/docs/how-to/sml/manifestCreator.py b/docs/how-to/sml/manifestCreator.py
index 07fbeabc..27ea8db0 100755
--- a/docs/how-to/sml/manifestCreator.py
+++ b/docs/how-to/sml/manifestCreator.py
@@ -148,7 +148,7 @@ def __init__(self, cpxCicInput={}):
self.cicContainerName = "cic"
self.cpxContainerName = "cpx"
self.cpxImage = "quay.io/netscaler/netscaler-cpx:14.1-25.111"
- self.cicImage = "quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4"
+ self.cicImage = "quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10"
self.imagePullPolicy = "Always"
self.readinessProbe = True
self.serviceAccountName = "citrix"
diff --git a/docs/how-to/webhook/allowedrepos/good-example.yaml b/docs/how-to/webhook/allowedrepos/good-example.yaml
index 60ecfe59..256658be 100755
--- a/docs/how-to/webhook/allowedrepos/good-example.yaml
+++ b/docs/how-to/webhook/allowedrepos/good-example.yaml
@@ -6,4 +6,4 @@ metadata:
spec:
containers:
- name: test-cic
- image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4
+ image: quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10
diff --git a/docs/how-to/webhook/requiredlabels/bad-example-deployment.yaml b/docs/how-to/webhook/requiredlabels/bad-example-deployment.yaml
index d509fde0..23513210 100755
--- a/docs/how-to/webhook/requiredlabels/bad-example-deployment.yaml
+++ b/docs/how-to/webhook/requiredlabels/bad-example-deployment.yaml
@@ -19,4 +19,4 @@ spec:
spec:
containers:
- name: test
- image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4"
+ image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10"
diff --git a/docs/how-to/webhook/requiredlabels/good-example-deployment.yaml b/docs/how-to/webhook/requiredlabels/good-example-deployment.yaml
index e0145573..9c790faf 100755
--- a/docs/how-to/webhook/requiredlabels/good-example-deployment.yaml
+++ b/docs/how-to/webhook/requiredlabels/good-example-deployment.yaml
@@ -20,4 +20,4 @@ spec:
spec:
containers:
- name: test
- image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4"
+ image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10"
diff --git a/docs/network/bgp-enhancement.md b/docs/network/bgp-enhancement.md
index 397c945a..ff339b44 100644
--- a/docs/network/bgp-enhancement.md
+++ b/docs/network/bgp-enhancement.md
@@ -71,7 +71,7 @@ Perform the following steps to configure BGP RHI support based on the sample top
serviceAccountName: cic-k8s-role
containers:
- name: cic-k8s-ingress-controller
- image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4"
+ image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10"
env:
# Set NetScaler NSIP/SNIP, SNIP in case of HA (mgmt has to be enabled)
diff --git a/docs/network/staticrouting.md b/docs/network/staticrouting.md
index 340add42..05c0d19c 100644
--- a/docs/network/staticrouting.md
+++ b/docs/network/staticrouting.md
@@ -58,7 +58,7 @@ You can specify this argument in the [citrix-k8s-ingress-controller.yaml](https:
serviceAccountName: cic-k8s-role
containers:
- name: cic-k8s-ingress-controller
- image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4"
+ image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10"
# feature-node-watch argument configures route(s) on the Ingress Netscaler
# to provide connectivity to the pod network. By default, this feature is disabled.
args:
diff --git a/docs/network/type_loadbalancer.md b/docs/network/type_loadbalancer.md
index 5422e250..89402bc1 100644
--- a/docs/network/type_loadbalancer.md
+++ b/docs/network/type_loadbalancer.md
@@ -105,7 +105,7 @@ Perform the following steps to deploy the Netscaler ingress controller with the
serviceAccountName: cic-k8s-role
containers:
- name: cic-k8s-ingress-controller
- image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4"
+ image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10"
env:
# Set Netscaler NSIP/SNIP, SNIP in case of HA (mgmt has to be enabled)
- name: "NS_IP"
diff --git a/docs/upgrade.md b/docs/upgrade.md
index 16572c29..36d82bc0 100644
--- a/docs/upgrade.md
+++ b/docs/upgrade.md
@@ -10,7 +10,7 @@ If you want to upgrade by modifying the **YAML** definition file, perform the fo
1. Change the version of the Netscaler ingress controller and Netscaler CPX image under `containers` section to the following:
- Netscaler CPX version: 14.1-25.111 (`quay.io/netscaler/netscaler-cpx:14.1-25.111`)
- - Netscaler ingress controller version: 2.1.4 (`quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4`)
+ - Netscaler ingress controller version: 2.1.4 (`quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10`)
2. Update the `CluterRole` as follows:
@@ -71,7 +71,7 @@ If you want to upgrade Netscaler ingress controller to version 1.5.25 by modifyi
env: ...
args: ...
- You should change the version of the image to version 1.5.25. For example, `quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4`.
+ You should change the version of the image to version 1.5.25. For example, `quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10`.
2. Update the `ClusterRole` as follows:
diff --git a/example/dsr/KubernetesConfig/citrix-k8s-cpx-ingress.yml b/example/dsr/KubernetesConfig/citrix-k8s-cpx-ingress.yml
index fd9f0d38..8c820e98 100644
--- a/example/dsr/KubernetesConfig/citrix-k8s-cpx-ingress.yml
+++ b/example/dsr/KubernetesConfig/citrix-k8s-cpx-ingress.yml
@@ -104,7 +104,7 @@ spec:
name: cpx-volume2
# Add cic as a sidecar
- name: cic
- image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4"
+ image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10"
env:
- name: "EULA"
value: "yes"
diff --git a/example/dsr/KubernetesConfig/citrix-k8s-ingress-controller.yaml b/example/dsr/KubernetesConfig/citrix-k8s-ingress-controller.yaml
index bb747167..2c1aa96b 100644
--- a/example/dsr/KubernetesConfig/citrix-k8s-ingress-controller.yaml
+++ b/example/dsr/KubernetesConfig/citrix-k8s-ingress-controller.yaml
@@ -91,7 +91,7 @@ spec:
serviceAccountName: cic-k8s-role
containers:
- name: cic-k8s-ingress-controller
- image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4"
+ image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10"
env:
# Set NetScaler NSIP/SNIP, SNIP in case of HA (mgmt has to be enabled)
- name: "NS_IP"
diff --git a/example/hpa-demo/values.sh b/example/hpa-demo/values.sh
index 16c6d72c..7a5f1c95 100755
--- a/example/hpa-demo/values.sh
+++ b/example/hpa-demo/values.sh
@@ -1,6 +1,6 @@
VPX_IP="VPX_IP"
CPX_IMAGE="quay.io/netscaler/netscaler-cpx:14.1-25.111"
-CIC_IMAGE="quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4"
+CIC_IMAGE="quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10"
EXPORTER="quay.io/citrix/citrix-adc-metrics-exporter:1.4.9"
VPX_PASSWORD="VPX_PASSWORD"
VPX_VIP="VIRTUAL_IP_VPX"
diff --git a/example/ipam-controller/citrix-ipam-controller.yaml b/example/ipam-controller/citrix-ipam-controller.yaml
index 86edc469..b964aaf5 100644
--- a/example/ipam-controller/citrix-ipam-controller.yaml
+++ b/example/ipam-controller/citrix-ipam-controller.yaml
@@ -55,7 +55,7 @@ spec:
spec:
serviceAccountName: citrix-ipam-controller
containers:
- - image: quay.io/citrix/citrix-ipam-controller:1.2.0
+ - image: quay.io/netscaler/netscaler-ipam-controller:2.0.1
imagePullPolicy: IfNotPresent
name: citrix-ipam-controller
env:
diff --git a/example/servicegraph-demo/cpx.yaml b/example/servicegraph-demo/cpx.yaml
index 4a63c520..c4f50612 100644
--- a/example/servicegraph-demo/cpx.yaml
+++ b/example/servicegraph-demo/cpx.yaml
@@ -38,7 +38,7 @@ spec:
imagePullPolicy: Always
# Add cic as a sidecar
- name: cic
- image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4"
+ image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10"
env:
- name: "EULA"
value: "yes"
diff --git a/gslb/Manifest/gslb-controller.yaml b/gslb/Manifest/gslb-controller.yaml
index 876f3df9..5f4e57a3 100644
--- a/gslb/Manifest/gslb-controller.yaml
+++ b/gslb/Manifest/gslb-controller.yaml
@@ -17,7 +17,7 @@ spec:
serviceAccountName: gslb-k8s-role
containers:
- name: gslb-k8s-ingress-controller
- image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.1.4"
+ image: "quay.io/netscaler/netscaler-k8s-ingress-controller:2.2.10"
imagePullPolicy: Always
env:
# Set NetScaler NSIP/SNIP, SNIP in case of HA (mgmt has to be enabled)