{"record":{"id":"dd77d6a0a4800a9c","repo":"CanineHQ/canine","slug":"no-ingress-found-for-ingress-controller","errorCode":null,"errorMessage":"No ingress found for ingress controller","messagePattern":"No ingress found for ingress controller","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"app/services/k8/stateless/ingress.rb","lineNumber":52,"sourceCode":"    result = kubectl.call(%w[get ingresses -o yaml])\n    results = YAML.safe_load(result)\n    results['items'].find { |r| r['metadata']['name'] == \"#{@service.project.namespace}-ingress\" }\n  end\n\n  INGRESS_APP_LABELS = %w[traefik ingress-nginx].freeze\n\n  def self.hostname(client)\n    services = client.get_services(namespace: nil).select { |s| s.spec.type == \"LoadBalancer\" }\n    service = INGRESS_APP_LABELS.lazy.filter_map { |label|\n      services.find { |s| s.metadata.labels&.[](\"app.kubernetes.io/name\") == label }\n    }.first\n\n    if service.nil?\n      raise \"No ingress controller service found\"\n    end\n    ingress = service.status&.loadBalancer&.ingress&.first\n    if ingress.nil?\n      raise \"No ingress found for ingress controller\"\n    end\n\n    if ingress.ip\n      {\n        value: ingress.ip,\n        type: :ip_address\n      }\n    else\n      {\n        value: ingress.hostname,\n        type: :hostname\n      }\n    end\n  end\n\n  def hostname\n    @hostname ||= begin\n      self.class.hostname(self.client)","sourceCodeStart":34,"sourceCodeEnd":70,"githubUrl":"https://github.com/CanineHQ/canine/blob/ba4ee3968d8513ee27d8583fbd3e854a8dd053f3/app/services/k8/stateless/ingress.rb#L34-L70","documentation":"Error \"No ingress found for ingress controller\" thrown in CanineHQ/canine.","triggerScenarios":"Thrown at app/services/k8/stateless/ingress.rb:52 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"ba4ee3968d8513ee27d8583fbd3e854a8dd053f3","analyzedAt":"2026-08-23T17:49:27.834Z","schemaVersion":2},"datasetVersion":"2026-08-23T21:17:23.414Z"}