{"id":20887465,"url":"https://github.com/netscaler/nitrox","last_synced_at":"2025-06-20T18:11:07.393Z","repository":{"id":66953821,"uuid":"46756735","full_name":"netscaler/nitrox","owner":"netscaler","description":"Configure Citrix Netscaler Loadbalancing for container platforms","archived":false,"fork":false,"pushed_at":"2021-03-09T01:24:43.000Z","size":173,"stargazers_count":31,"open_issues_count":3,"forks_count":12,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-05-12T19:44:46.598Z","etag":null,"topics":["citrix-netscaler","consul","cpx","docker","kubernetes","marathon","mesos","mesosphere","swarm"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/netscaler.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2015-11-24T00:29:24.000Z","updated_at":"2025-01-18T06:52:27.000Z","dependencies_parsed_at":"2023-05-15T19:15:16.353Z","dependency_job_id":null,"html_url":"https://github.com/netscaler/nitrox","commit_stats":null,"previous_names":["netscaler/nitrox"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/netscaler/nitrox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netscaler%2Fnitrox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netscaler%2Fnitrox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netscaler%2Fnitrox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netscaler%2Fnitrox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/netscaler","download_url":"https://codeload.github.com/netscaler/nitrox/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netscaler%2Fnitrox/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260993956,"owners_count":23094275,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["citrix-netscaler","consul","cpx","docker","kubernetes","marathon","mesos","mesosphere","swarm"],"created_at":"2024-11-18T08:20:15.982Z","updated_at":"2025-06-20T18:11:02.380Z","avatar_url":"https://github.com/netscaler.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nitrox\nConfigure Citrix NetScaler loadbalancing for container platforms such as Docker Swarm, Mesos Marathon, Kubernetes and Consul.\n\n# Theory of Operation\n1. Containers that form a load-balanced backend for an app/microservice are labeled with the same label (e.g., com.citrix.lb.appname=AccountService, or AccountService) or name\n2. Information (host IP and port) from the container platform (such as  [Docker Swarm](https://docs.docker.com/swarm/)) API for the labeled containers are used to configure a NetScaler loadbalancer.\n3. The NetScaler admin creates the \"frontend\" `lb vserver` with the label/name used in #1\n\n\u003cimg src=\"nitrox.png\" width=\"480\"/\u003e\n\n# NetScaler Pre-requisites\n\n1. Credentials for a running Citrix NetScaler (VPX/MPX/SDX/CPX). On the host where you run the container/code, replace with your own:\n\n   ````\n   export NS_IP=10.220.73.33\n   export NS_USER=nsroot\n   export NS_PASSWORD=useyourownnspassword\n   ````\n\n2. List of microservices / apps that have to be load balanced. For example, 'AccountService', 'ProductCatalog', 'ShoppingCart', etc.\n3. NetScaler that has been configured with VIP(s) for above apps. For example, lets say there is a microservice/app called 'AccountService' with a load balanced IP of 10.220.73.222. On the NetScaler:\n\n    ```\n    add lb vserver AccountService HTTP 10.220.73.222 80 -persistenceType COOKIE -lbMethod LEASTCONNECTION\n    ```\n    \n    Alternatively, if the `lb_ip` and `lb_port` are included in the `APP_INFO` env variable, the `lb vserver` is configured automatically with some default options (`ROUNDROBIN`)\n4. (for developers) The NetScaler Python SDK (can be downloaded here https://www.citrix.com/downloads/netscaler-adc/sdks.html or copied from the NetScaler)\n\n#Container Platforms\n\n### Docker Swarm\n[Docker Swarm] (https://docs.docker.com/swarm/) is a clustered container manager. Instructions are [here](swarm/README.md)\n\n### Marathon\n[Marathon] (https://mesosphere.github.io/marathon/) is a PAAS framework that can run containerized workloads. Instructions are [here](marathon/README.md)\n\n### Kubernetes\n[Kubernetes] (https://kubernetes.io/) is an open source orchestration system for Docker containers. It . Instructions are [here](kubernetes/README.md)\n\n### Consul-template\n[consul-template] (https://github.com/hashicorp/consul-template)  provides a convenient way to populate values from Consul.  Instructions are [here](consul/README.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetscaler%2Fnitrox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetscaler%2Fnitrox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetscaler%2Fnitrox/lists"}