问题描述
我在尝试将 Dhall 用于 Kubernetes 时收到一条奇怪的错误消息,我不明白。这是我的配置:
let k8s = ./k8s.dhall
let utils = ./utils.dhall
let Env = utils.Env
in \(env : Env) ->
k8s.Ingress::{,Metadata = k8s.ObjectMeta::{,name = Some "my-ingress",annotations = Some
[ { mapKey = "kubernetes.io/ingress.global-static-ip-name",mapValue = "my-ip"
}
]
},spec = Some k8s.Ingressspec::{,defaultBackend = Some k8s.IngressBackend::{,service = Some k8s.IngressServiceBackend::{,name = "my-Nginx",port = Some k8s.ServiceBackendPort::{ number = Some 71742 }
}
}
}
}
这里是错误信息:
↳ ./ingress.dhall
Error: Missing record field: IngressServiceBackend
19│ k8s.IngressServiceBackend
/Users/damd/Code/proj/ingress.dhall:19:28
23│ ./ingress.dhall
./proj.dhall:23:20
所以在我看来它在 IngressServiceBackend
中找不到 k8s
?但是,k8s
被定义为 https://raw.githubusercontent.com/dhall-lang/dhall-kubernetes/master/1.19/package.dhall,当我手动浏览该 URL 时,我可以看到它在那里。
有什么想法吗?
解决方法
清除我的 Dhall 缓存似乎解决了这个问题。不知道发生了什么。
$ rm -rf ~/.cache/dhall*
希望这对其他人有帮助。