visionone-file-security-helm

Expose Scanner Service Locally with Nginx Ingress

1. Prerequisites


2. Install Nginx Ingress Controller (NodePort)

a. Add the Nginx Ingress Helm Repository

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update

b. Create Namespace for Ingress Controller

kubectl create namespace ingress-nginx --dry-run=client -o yaml | kubectl apply -f -

c. Install the Ingress Controller

helm upgrade --install ingress-nginx ingress-nginx/ingress-nginx \
  --namespace ingress-nginx \
  --set controller.service.type=NodePort

3. Verify Ingress Controller Deployment

kubectl get pods -n ingress-nginx
kubectl get service -n ingress-nginx ingress-nginx-controller

4. Configure Ingress in values.yaml

Option 1: Scanner Service Only

Edit your values.yaml for scanner service only:

scanner:
  ingress:
    enabled: true
    className: "nginx"
    annotations:
      nginx.ingress.kubernetes.io/backend-protocol: "GRPC"
    hosts:
      - host: scanner.local.k8s
        paths:
          - path: /
            pathType: ImplementationSpecific
    tls: [] # Leave empty for local PoC

Option 2: Shared Host with Management Service

Edit your values.yaml to enable both scanner and management services on the same local host:

scanner:
  ingress:
    enabled: true
    className: "nginx"
    annotations:
      nginx.ingress.kubernetes.io/backend-protocol: "GRPC"
    hosts:
      - host: scanner.local.k8s
        paths:
          - path: /
            pathType: ImplementationSpecific
    tls: [] # Leave empty for local PoC

managementService:
  ingress:
    enabled: true
    className: "nginx"
    annotations:
      nginx.ingress.kubernetes.io/backend-protocol: "HTTP"
    hosts:
      - host: scanner.local.k8s  # Same host as scanner
        paths:
          - path: /ontap
            pathType: Prefix
    tls: [] # Leave empty for local PoC

With the shared host configuration:

Configuration Notes


5. Deploy or Upgrade the Helm Release

helm upgrade --install my-release visionone-filesecurity/visionone-filesecurity -f values.yaml

6. Verify Ingress Resource

kubectl get ingress -n visionone-filesecurity

7. Configure Local DNS Resolution

sudo nano /etc/hosts
127.0.0.1  scanner.local.k8s

8. Test the Connection

./tmfs scan file:example.txt --tls=false --endpoint scanner.local.k8s:31502

Note