1. 22 Oct, 2021 1 commit
  2. 20 Sep, 2021 1 commit
  3. 17 Sep, 2021 7 commits
    • Geoff Simmons's avatar
      Update the haproxy version. · 79061006
      Geoff Simmons authored
      79061006
    • Geoff Simmons's avatar
      Fix an e2e test when the deployment method is kubectl. · dfab0df7
      Geoff Simmons authored
      The replica scaling test for self-sharding requires the Deployment
      name "varnish-ingress" for the viking service.
      dfab0df7
    • Geoff Simmons's avatar
      WIP: implement the authority field for TLS onload, to set the SNI. · ab2b74c6
      Geoff Simmons authored
      This is the SNI sent in the client TLS connection to a backend.
      
      We use VMOD dynamic for backends represented by an ExternalName
      Service (likely the common use case for TLS onload). VMOD dynamic
      does not have the authority field that klarlack makes available
      for standard backends. But if the host_header field is set for
      a VMOD dynamic director, the VMOD uses that value for the SNI.
      
      So if the BackendConfig authority field is set, we also assign its
      value to the host_header field. Since BackendConfig also has a
      separate field for host_header, both of them could be conceivably
      set to different values. If we find that the two fields are set
      to non-empty, conflicting values, the controller emits a
      SyncFatalError, and the BackendConfig is not synced.
      ab2b74c6
    • Geoff Simmons's avatar
      3a8c3017
    • Geoff Simmons's avatar
    • Geoff Simmons's avatar
      WIP: initial, limited implementation of TLS onload. · d72a0d36
      Geoff Simmons authored
      This uses haproxy for TLS connections to IngressBackends, and the
      via feature of the klarlack implementation of Varnish. See:
      
      https://github.com/varnishcache/varnish-cache/pull/3128
      
      Adds the spec.tls object to the BackendConfig CRD, which configures
      TLS onload for a backend.
      
      Limitations: currently only verify:false and the maxConn settings
      are implemented. Specification of CA certificates and the stick
      table configuration for haproxy are not yet implemented. Currently
      TLS onload may be only specified for one backend (no more than one
      BackendConfig).
      
      Adds the CLI option -varnishImpl to the controller. TLS onload is
      only supported if this option is set to "klarlack". Otherwise, the
      presence of the tls object in a BackendConfig leads to a SyncFatalError,
      with a message that it's only supported for klarlack, and the
      BackendConfig is not synced.
      
      If the backend Service specified for TLS onload has type ExternalName,
      then 3 server instances are configured for the haproxy backend. This
      value is currently hard-wired, and may be made configurable in a future
      iteration. For any other Service type, there are as many haproxy server
      instances as there are Endpoints (Pods) in the k8s cluster.
      
      If maxConn is not specified in the BackendConfig, it defaults to
      2000 (the haproxy default).
      d72a0d36
    • Geoff Simmons's avatar
  4. 03 Sep, 2021 17 commits
  5. 11 Aug, 2021 1 commit
    • Geoff Simmons's avatar
      Fix the haproxy container build. · a6a3d145
      Geoff Simmons authored
      For this it is necessary to abandon go get to download k8s-crt-dnldr,
      and use git clone && make instead. The reasons for that are detailed
      in commit message fe1fc4f of the k8s-crt-dnldr repo.
      a6a3d145
  6. 10 Aug, 2021 1 commit
  7. 09 Aug, 2021 1 commit
  8. 03 Aug, 2021 1 commit
  9. 03 Jun, 2021 1 commit
  10. 02 Jun, 2021 1 commit
    • Geoff Simmons's avatar
      Another breaking change to fix & complete self-sharding with conditions. · f2f71758
      Geoff Simmons authored
      The self-sharding field in VarnishConfig now has a mandatory field
      rules. This is an array of at least one object with a mandatory
      field shard and an optional field conditions.
      
      spec.self-sharding.rules[n].shard configures sharding in the fields
      key, digest and primaryOnly (all optional).
      
      spec.self-sharding.rules[n].conditions, if specified, is an array
      of at least one condition, which specifies a boolean expression.
      It is the same as conditions used for other contexts such as
      rewrites.
      
      The rules array is evaluated in order as an if-elsif-else sequence.
      This means that if any element of the array specifies no conditions,
      it MUST be the last rule in the array. In an array of length > 1,
      it becomes the else case. This constraint is trivially satisfied
      if there is only one rule. It is currently *not* enforced (would be
      suitable for a webhook validation).
      
      The fields probe and max2ndttl are now top-level fields under
      self-sharding, both optional.
      f2f71758
  11. 28 May, 2021 2 commits
  12. 27 May, 2021 5 commits
  13. 10 May, 2021 1 commit