-
Geoff Simmons authored
Currently only implemented to kubectl-style deployments. Helm support to be added in the next commits. This is a breaking change for the self-sharding configuration. Configs previously expressed in the self-sharding object are now moved to self-sharding.shard. In addition, the optional array self-sharding.conditions may express conditions under which self-sharding logic is executed. The conditions array has the same syntax and semantics as for req-disposition. XXX: there is some DRY that needs to be refactored away. - We currently have two internal means of expressing conditions under which something happens (translated to if-clauses with matching operations and the like in VCL): Condition and the legacy MatchTerm, in both the k8s VarnishConfig class and the spec type for VCL templating. These should be unified to Condition. - The code for interpreting Conditions for the k8s object in pkg/controller is in part repeated for self-sharding and req-disposition. These should be encapsulated in a common function. - Template generation for the if-clauses implementing conditions is repeated in req-dispostiion and currently in two places for self-sharding. This should be a common text/template object. While here, move some of the code about self-sharding and conditions from varnishconfig.go to ingress.go. Because it's actually about the VarnishConfig Custom Resource, and in a continuing effort to reduce the oversized ingress.go source.
075c5b26