1.1.1-0.1.0 • Published 5 years ago

@helm-charts/cic-citrix-k8s-ingress-controller v1.1.1-0.1.0

Weekly downloads
1
License
MIT
Repository
-
Last release
5 years ago

@helm-charts/cic-citrix-k8s-ingress-controller

A Helm chart for Citrix Ingress Controller configuring MPX/VPX

FieldValue
Repository Namecic
Chart Namecitrix-k8s-ingress-controller
Chart Version1.1.1
NPM Package Version0.1.0
# Default values for citrix-k8-ingress-controller.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

# image contains information needed to fetch CIC image
image:
  repository: quay.io/citrix/citrix-k8s-ingress-controller
  tag: 1.1.1
  pullPolicy: Always
#loginFileName is secret file for NetScaler login
loginFileName:
# nsIP is NetScaler NSIP/SNIP, SNIP in case of HA (mgmt has to be enabled)
nsIP: x.x.x.x

logLevel: DEBUG
# license accept should be 'yes' to run Citrix Ingress Controller
license:
   accept: no
# nsPort is port for NetScaler NITRO
nsPort: 443
# nsProtocol is protocol for NetScaler NITRO
nsProtocol: HTTPS
# logLevel is to set level of CIC Logs
logLevel: DEBUG
# kubernetesURL is for registering events to kubeapi server
kubernetesURL:
# ingressClass is the name of the Ingress Class
ingressClass:
#nodeWatch is used for automatic route configuration on NetScaler towards the pod network
nodeWatch: false
# exporter conatins information of prometheus-exporter
exporter:
  require: 0
  image:
       repository: quay.io/citrix/netscaler-metrics-exporter
       tag: v1.0.4
       pullPolicy: Always
  ports:
       containerPort: 8888

Citrix Ingress Controller

Citrix Ingress Controller runs as a pod in Kubernetes cluster and configures the NetScaler VPX/MPX.

TL;DR;

helm repo add cic https://citrix.github.io/citrix-k8s-ingress-controller/

helm install cic/citrix-k8s-ingress-controller --set nsIP= <NSIP>,license.accept=yes

Note: "license.accept" is a mandatory argument and should be set to "yes" to accept the terms of the Citrix license.

Introduction

This Chart deploys Citrix Ingress Controller in the Kubernetes Cluster using Helm package manager

Prerequisites

  • Kubernetes 1.6+
  • Helm 2.8.x+
  • Prometheus operator needs to be installed if you want to use exporter along with CIC.

Installing the Chart

Add the Citrix Ingress Controller helm chart repository using command:

helm repo add cic https://citrix.github.io/citrix-k8s-ingress-controller/

To install the chart with the release name my-release:

helm install cic/citrix-k8s-ingress-controller --name my-release --set nsIP= <NSIP>,license.accept=yes,ingressClass[0]=<ingressClassName>

If you want to run exporter along with CIC, please install prometheus operator first and then use the following command:

helm install cic/citrix-k8s-ingress-controller --name my-release --set license.accept=yes,ingressClass[0]=<ingressClassName>,exporter.require=1.0

If you want to visualize the metrices collected by exporter from Citrix ADC please refer "Visualization of Metrics".

The command deploys Citrix Ingress Controller on the Kubernetes cluster in the default configuration. The configuration lists the parameters that can be configured during installation.

Uninstalling the Chart

To uninstall/delete the my-release deployment:

helm delete --purge my-release

The command removes all the Kubernetes components associated with the chart and deletes the release

Configuration

The following table lists the configurable parameters of the Citrix Ingress Controller chart and their default values.

ParameterDescriptionDefault
license.acceptSet to accept to accept the terms of the Citrix licenseno
image.repositoryImage Repositoryquay.io/citrix/citrix-k8s-ingress-controller
image.tagImage Tag1.1.1
image.pullPolicyImage Pull PolicyAlways
loginFileNameSecret keys for login into NetScaler VPX or MPX Refer Secret Keysnslogin
nsIPNetScaler VPX/MPX IPx.x.x.x
nsPortOptional:This port is used by Citrix Ingress Controller to communicate with NetScaler. Can use 80 for HTTP443
nsProtocolOptional:This protocol is used by Citrix Ingress Controller to communicate with NetScaler. Can use HTTP with nsPort as 80HTTPS
logLevelOptional: This is used for controlling the logs generated from Citrix Ingress Controller. options available are CRITICAL ERROR WARNING INFO DEBUGDEBUG
kubernetesURLOptional: register for events. If user did not specify it explictly, citrix ingress controller use internal KubeAPIServer IP.nil
ingressClassList of name of Ingress Classesnil
nodeWatchUse for automatic route configuration on NetScaler towards the pod networkfalse
exporter.requireExporter to be run as sidecar with CIC0
exporter.image.repositoryExporter image repositoryquay.io/citrix/netscaler-metrics-exporter
exporter.image.tagExporter image tagv1.0.4
exporter.image.pullPolicyExporter Image Pull PolicyAlways
exporter.ports.containerPortExporter Container Port8888

Tip: You can use the default values.yaml

Note: Please provide frontend-ip (VIP) in your application ingress yaml file. For more info refer this

Route Addition in MPX/VPX

For seamless functioning of services deployed in the Kubernetes cluster, it is essential that Ingress NetScaler device should be able to reach the underlying overlay network over which Pods are running. feature-node-watch knob of Citrix Ingress Controller can be used for automatic route configuration on NetScaler towards the pod network. Refer Network Configuration for further details regarding the same. By default, feature-node-watch is false. It needs to be explicitly set to true if auto route configuration is required.

Secret Keys

To generate secret keys use

kubectl create secret  generic <filename> --from-literal=username='<username>' --from-literal=password='<password>'

The created filename can be passed to values.yaml.

RBAC

By default the chart will install the recommended RBAC roles and rolebindings.

Exporter

Exporter is running along with the CIC and pulling metrics from the VPX/MPX. It exposes the metrics using Kubernetes NodePort.

Ingress Class

To know more about Ingress Class refer this.

For More Info: https://github.com/citrix/citrix-k8s-ingress-controller