Skip to content

Instantly share code, notes, and snippets.

@chiradeep
Last active November 21, 2019 06:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save chiradeep/1911e5141ee1e03ea91248faef8a81e1 to your computer and use it in GitHub Desktop.
Save chiradeep/1911e5141ee1e03ea91248faef8a81e1 to your computer and use it in GitHub Desktop.
Deploy Citrix CPX as an Ingress Controller with Prometheus monitoring
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: cpx-ingress-k8s-role
rules:
- apiGroups: [""]
resources: ["services", "endpoints", "ingresses", "pods", "secrets"]
verbs: ["*"]
- apiGroups: ["extensions"]
resources: ["ingresses", "ingresses/status"]
verbs: ["*"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: cpx-ingress-k8s-role
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cpx-ingress-k8s-role
subjects:
- kind: ServiceAccount
name: cpx-ingress-k8s-role
namespace: default
apiVersion: rbac.authorization.k8s.io/v1
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: cpx-ingress-k8s-role
namespace: default
---
apiVersion: v1
kind: ReplicationController
metadata:
name: cpx-ingress
spec:
replicas: 1
template:
metadata:
name: cpx-ingress
labels:
app: cpx-ingress
spec:
serviceAccountName: cpx-ingress-k8s-role
containers:
# Adding exporter as a side-car
- name: exporter
image: "quay.io/citrix/netscaler-metrics-exporter:latest"
imagePullPolicy: Always
args:
- "--target-nsip=127.0.0.1"
- "--port=8888"
- name: cpx-ingress
image: "quay.io/citrix/citrix-k8s-cpx-ingress:latest"
securityContext:
privileged: true
env:
- name: "EULA"
value: "yes"
- name: "NS_PROTOCOL"
value: "HTTP"
# Set port for Nitro
- name: "NS_PORT"
value: "9080"
args:
- --ingress-classes
citrix
imagePullPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
name: cpx-service
labels:
app: cpx-service
spec:
type: NodePort
ports:
- port: 80
protocol: TCP
name: http
- port: 443
protocol: TCP
name: https
selector:
app: cpx-ingress
---
apiVersion: v1
kind: Service
metadata:
name: exporter-cpx-ingress
labels:
service-type: citrix-adc-monitor
spec:
selector:
app: cpx-ingress
ports:
- name: exporter-port
port: 8888
targetPort: 8888
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: citrix-adc-servicemonitor
labels:
servicemonitor: citrix-adc
spec:
endpoints:
- interval: 30s
port: exporter-port
selector:
matchLabels:
service-type: citrix-adc-monitor
namespaceSelector:
matchNames:
- monitoring
- default
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment