• Geoff Simmons's avatar
    Add the conditions field to VarnishConfig.self-sharding. · 075c5b26
    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
Name
Last commit
Last update
..
acl.golden Loading commit data...
acl_no_fail.golden Loading commit data...
acl_result_hdr.golden Loading commit data...
auth.golden Loading commit data...
backendcfg.golden Loading commit data...
custom_vcl.golden Loading commit data...
extname.golden Loading commit data...
extname_bcfg.golden Loading commit data...
ingress_default_probe_dir.golden Loading commit data...
ingress_default_rules.golden Loading commit data...
ingress_fanout_nohost.golden Loading commit data...
ingress_shard.golden Loading commit data...
ingress_single_svc.golden Loading commit data...
ingress_vhost_nohost.golden Loading commit data...
ingressrule.golden Loading commit data...
primaryonly_shard.golden Loading commit data...
recv_disp_builtin.golden Loading commit data...
recv_disp_cacheable.golden Loading commit data...
recv_disp_connect_pipe.golden Loading commit data...
recv_disp_method_not_allowed.golden Loading commit data...
recv_disp_non_cacheable.golden Loading commit data...
recv_disp_pipe_on_connect.golden Loading commit data...
recv_disp_purge_method.golden Loading commit data...
recv_disp_url_whitelist.golden Loading commit data...
rewrite_append.golden Loading commit data...
rewrite_append_from_src.golden Loading commit data...
rewrite_append_rule.golden Loading commit data...
rewrite_auth_delete.golden Loading commit data...
rewrite_conditional_delete.golden Loading commit data...
rewrite_delete.golden Loading commit data...
rewrite_extract.golden Loading commit data...
rewrite_extract_cookie.golden Loading commit data...
rewrite_fixed_equal.golden Loading commit data...
rewrite_fixed_prefix.golden Loading commit data...
rewrite_fixed_suball.golden Loading commit data...
rewrite_prefix_regex.golden Loading commit data...
rewrite_prepend.golden Loading commit data...
rewrite_prepend_hdr.golden Loading commit data...
rewrite_prepend_if_exists.golden Loading commit data...
rewrite_replace_from_rewrite.golden Loading commit data...
rewrite_replace_from_source.golden Loading commit data...
rewrite_replace_from_string.golden Loading commit data...
rewrite_select_first.golden Loading commit data...
rewrite_select_ops.golden Loading commit data...
rewrite_select_permute.golden Loading commit data...
rewrite_sub.golden Loading commit data...
rewrite_x_cache_hdr.golden Loading commit data...
shard.golden Loading commit data...
shard_by_digest.golden Loading commit data...
shard_by_key.golden Loading commit data...
shard_by_url.golden Loading commit data...
shard_conditions.golden Loading commit data...