Skip to content

1.8.0-rc1

Pre-release
Pre-release
Compare
Choose a tag to compare
@joestringer joestringer released this 21 May 21:38
v1.8.0-rc1

This is the first release candidate of v1.8.0. The summary of changes below reflect the diff between the last stable release (v1.7.4) and tag v1.8.0-rc1.

Summary of Changes

Major Changes:

  • Add a new DSR/SNAT hybrid mode which allows to work without MTU changes and enables DSR for TCP and SNAT for UDP workloads. Enable it by default for Cilium's kube-proxy replacement in probe and strict mode. (#10203, @borkmann)
  • Add a new event type for policy verdicts (#9943, @lzang)
  • Add BPF masquerading for veth mode (#11148, @brb)
  • Add BPF-based ip-masq-agent (#11148, @brb)
  • Add Cilium Operator IPAM (#11083, @aanm)
  • Add DeepEquals generated code (#11435, @aanm)
  • Add Kubernetes IPAM mode (#10407, @tgraf)
  • add support for k8s 1.18 (#10654, @aanm)
  • Add support for services sessionAffinity (without and with kube-proxy) (#11085, @brb)
  • Allow attaching BPF NodePort and BPF masquerade to multiple devices (#11267, @brb)
  • Azure IPAM Support (#10089, @tgraf)
  • Embed Hubble (#10238, @michi-covalent)
  • Host endpoint (#10994, @pchaigno)
  • hubble-proxy: implement 'serve' command (#10653, @rolinh)
  • hubble-relay: add initial multi-node support (#11171, @rolinh)
  • hubble: implement peer service, enable it locally (#10969, @rolinh)
  • Implement policy audit mode for the daemon (#9970, @ap4y)
  • Merge all Hubble server-side code into Cilium (#10860, @tgraf)
  • Network policies for the host endpoint (#11507, @pchaigno)
  • Support for IPv4 fragments (#10264, @qmonnet)
  • Support for named k8s container ports is added to both K8s Network Policies and Cilium Network Policies. (#11092, @jrajahalme)
  • Switch to native-routing in GKE guide (#11079, @tgraf)
  • XDP-based NodePort LB handling for BPF-based DSR, SNAT and Hybrid mode. (#10877, @borkmann)

Minor Changes:

  • Add a flag to disable feeder installation on certain iptables tables (#10639, @Sh4d1)
  • Add command line option to dynamically size BPF maps based on total system memory. (#10780, @tklauser)
  • Add completion support for fish shell (#11284, @sayboras)
  • add getting started guide for BIRD (#10326, @ArthurChiao)
  • Add helm NOTES file (#10641, @soumynathan)
  • Add hubble helm charts to cilium install/kubernetes (#10648, @soumynathan)
  • Add informatin to docs about network interfaces in tunnelling mode (#11357, @cortopy)
  • Add more detailed proxy redirects status to cilium status (#10082, @joestringer)
  • Add more PriorityClassName fields in Helm charts (#10583, @johngmyers)
  • add option to hold cilium agent after init container (#10101, @aanm)
  • Add option to retrieve pprof traces from running cilium-agents (#10666, @aanm)
  • Add Pod as an owner of a CiliumEndpoint and remove useless Delete (#11195, @aanm)
  • Add PodSecurityPolicies to helm chart (#10330, @maxbischoff)
  • Add possibility to configure native-routing-cidr in helm chart. (#11132, @zbindenren)
  • Add priorityClassName to operator deployment in helm chart (#10285, @maxbischoff)
  • Add the data path filtering for policy verdict logs. (#10477, @lzang)
  • added a max-allocate flag on pkg/ipam to control the maximum amount of IPs being allocated to a node (#10786, @mvisonneau)
  • Added support for logging in JSON format (#11133, @mvisonneau)
  • agent: Remove awareness of IPv4 cluster-range (#10194, @tgraf)
  • Allow specifying on which interface the Azure IPAM should allocate IPs on (#10875, @ungureanuvladvictor)
  • azure: retrieve subscriptionID/resourceGroupName from Azure IMS if not provided via CLI flags (#10764, @ungureanuvladvictor)
  • Azure: support multiple pods subnets, and networks in different resource groups (#11268, @bpineau)
  • bpf: Check native-routing-cidr in BPF masquerade (#11473, @brb)
  • bpf: don't answer ARP requests for endpoint IP (#11533, @jcaamano)
  • bpf: Fix native dev cleanup (#10352, @brb)
  • bpf: make socket lb progs netns aware (#10778, @borkmann)
  • bpf: significantly improve capacity of TCP CT tables (#10518, @borkmann)
  • bump k8s dependencies and test to v1.18.1 (#10924, @aanm)
  • bump k8s dependencies and test to v1.18.2 (#11047, @aanm)
  • cilium cleanup removes previously installed NodePort BPF programs (#10063, @brb)
  • Cilium host proxy has has been updated to Envoy release 1.13.1. (#10222, @jrajahalme)
  • Cilium Operator can now use the flags specified cilium-config k8s configuration map (#10347, @aanm)
  • cilium, docker: runtime dependency updates (#10542, @borkmann)
  • cilium-operator: support subnets filters (#10738, @bpineau)
  • cilium: Add CLI to introspect IP <-> Identity cache (#11566, @joestringer)
  • cilium: bpf-based hostport implementation (#10592, @borkmann)
  • cli: Add Hubble section to cilium status output (#10879, @gandro)
  • cli: Clarify help of 'cilium map' (#10855, @pchaigno)
  • clustermesh: Add cilium status section (#10169, @tgraf)
  • daemon,cli: Improve kube-proxy-replacement status (#10083, @brb)
  • daemon: Add KubeProxyReplacement to cilium status cmd (#10059, @brb)
  • daemon: adding support for egress policy tracing (#10020, @wofanli)
  • daemon: Make build depend on Makefiles and Dockerfile (#10367, @jrajahalme)
  • Decrease CRD setup API calls when starting cilium-agent (#10676, @aanm)
  • Deprecate --disable-k8s-services cilium-agent flag (#10552, @soumynathan)
  • Deprecate DNS Poller in v1.8 (#10629, @soumynathan)
  • Do not listen on any port by default for cilium-operator (#10368, @aanm)
  • doc: Change machine-type to n1-standard-4 for GKE guide (#11529, @tgraf)
  • docs: Drop k8s 1.10 from supported/tested versions (#10319, @jrajahalme)
  • Docs: Implements Documentation to install Cilium on k3s (#10476, @seanmwinn)
  • docs: Mention that a kv-store is optional with k8s. (#10321, @jrajahalme)
  • docs: Update kube-router getting started guide (#10159, @brb)
  • Documentation: Switch EKS documentation to default to ENI (#10126, @tgraf)
  • Fallback mode for a missing xt_socket kernel module is added where kernel's IP early demux functionality is disabled. This fallback is enabled by default if it is needed for correct policy enforcement and visibility functionality. This fallback may be disabled by setting enable-xt-socket-fallback=false. (#10299, @jrajahalme)
  • Getting started guide to TLS-visibility (#9808, @danwent)
  • golang: update to 1.13.8 (#10179, @aanm)
  • golang: update to 1.14 (#10340, @aanm)
  • Handle audit mode in cilium endpoint list and kubectl get cep (#11011, @ap4y)
  • helm: add bpf-policy-map-max option (#11478, @alex1989hu)
  • helm: Add hubble section (#10358, @michi-covalent)
  • helm: add option to enable automatic etcd name resolution (#10918, @aanm)
  • helm: Allow for overriding the size of the managed etcd cluster. (#10644, @bmcustodio)
  • helm: set hubble-ui securityContext (#11475, @alex1989hu)
  • hubble-proxy: add initial skeleton (#10545, @rolinh)
  • hubble-relay: add Dockerfile and make target to build hubble-relay image (#11192, @rolinh)
  • hubble-relay: enable gRPC reflection (#11616, @rolinh)
  • hubble-relay: implement flows reordering (#11397, @rolinh)
  • hubble-relay: persist connections to hubble peers (#11335, @rolinh)
  • hubble: Populate traffic direction for trace and drop events (#11062, @gandro)
  • hubble: Update uint size in flow proto (#11161, @matej-g)
  • Improve 'cilium-agent --help' (#10795, @soumynathan)
  • ipmasq: Add default nonMasq CIDRs if config is empty (#11409, @brb)
  • Istio integration has been updated to Istio release 1.4.6. (#10466, @jrajahalme)
  • Istio integration has been updated to release 1.5.0. (#10564, @jrajahalme)
  • Istio integration has been updated to release 1.5.2 (#11280, @jrajahalme)
  • Istio integration is simplified with Cilium build of istioctl. (#10851, @jrajahalme)
  • Istio integration is updated to release 1.5.1, with backported fix for GKE/COS. (#10730, @jrajahalme)
  • k8s: Disable several CiliumEndpoint status sections by default (#10490, @tgraf)
  • Keep Cluster IP service handling when accessed from pods when kubeProxyReplacement is set to "disabled" (pre-v1.6 behavior). (#10651, @brb)
  • kubernetes: Updated connectivity check (#10104, @tgraf)
  • Make resources in agent and operator helm chart configurable (#10296, @maxbischoff)
  • Makefile: Add multi-arch support for cilium images (#10021, @iecedge)
  • monitor: Support more verbosity levels (#10820, @joestringer)
  • On-demand policy wildcarding (#10054, @jrajahalme)
  • Optimize scalability of CiliumIdentity operation (#11275, @tgraf)
  • Pass native-routing-cidr to ENI CNI for route rules (#10887, @dctrwatson)
  • pkg/identity: Watch and update labels for the host (#11543, @pchaigno)
  • pkg/logging: redirect klog output to logrus (#10961, @aanm)
  • policymap, fragmap: clean up doc, map size configuration (#10964, @qmonnet)
  • Properly tear down gops agent on shutdown (#11471, @tklauser)
  • Protect NodePort port range by appending it to net.ipv4.ip_local_reserved_ports if the range clashes with ephemeral port range (#10782, @brb)
  • proxy: Remove access-log option (#10393, @tgraf)
  • Remove deprecated --container-runtime{,-endpoint} options (#11060, @tklauser)
  • ServiceMonitor should default to release namespace (#10088, @dsexton)
  • Support DNS matchPattern="*" to match "." (#11633, @joestringer)
  • Support on-disk etcd client certificate and key reload when using trusted-ca-file (#10754, @bpineau)
  • Switch k8s liveness/readiness probes to use HTTP /healthz endpoint instead of "cilium status --brief" command. (#11408, @tklauser)
  • Switch to upstream bpftool (#10353, @mrostecki)
  • test: Avoid panics due to dereferencing a nil error (#10390, @jrajahalme)
  • The default maximum number of entries in the BPF TCP ctmap is reduced to 512K. (#10289, @tklauser)
  • The deprecared --enable-legacy-service option was removed. (#10255, @tklauser)
  • Use bpftool for generating BPF feature macros (#10019, @mrostecki)
  • Use slimmer protobuf definitions on k8s structures (#11326, @aanm)
  • Watch for CEPs in the cluster instead of all pods (#11249, @aanm)

Bugfixes:

  • Add ability to detect iptables mode (nft/legacy) in cilium daemon image (#11199, @mskrocki)
  • Add check for IPv6 before generating bpf headers (#10628, @christarazi)
  • AKS: Fix dynamic reconfiguration of bridge mode (#10383, @tgraf)
  • api: Add missing annotations to generate DeepCopy for new status fields (#10166, @tgraf)
  • Auto detect EndpointSlice support by checking enabled APIs in Kubernetes. (#11206, @Weil0ng)
  • bpf: clean up IPv4 fragments support (and bpf/), add option for map size (#10927, @qmonnet)
  • BPF: fix missing "break" in nat46 switch, and minor cleanup (#11410, @qmonnet)
  • bpf: fix nodeport to avoid sending loopback address out to wire (#10841, @borkmann)
  • bpf: Fix proxy redirection for egress programs (#10113, @tgraf)
  • bpf: Preserve source identity for hairpin via stack (#10926, @tgraf)
  • bpf: Set DIRECT_ROUTING_DEV* in routed mode (#11419, @brb)
  • cilium: encryption, additional mtu fix for non-default 1500B MTU (#10551, @jrfastab)
  • cilium: encryption, segfaults if existing non-Cilium xfrm policy without mark set exists (#10268, @jrfastab)
  • cilium: fix node-port range parsing from helm and update docs (#10382, @borkmann)
  • cilium: set encrypt node route mtu in encryption table (#10741, @jrfastab)
  • cli: do not output shell completion copyright header on error (#10558, @rolinh)
  • cli: Fix JSON output for BPF conntrack & NAT tables dump (#10904, @qmonnet)
  • clustermesh: Emit identity-change events for remote clusters (#10290, @raybejjani)
  • clustermesh: Ignore ..data directory of secrets mount (#10200, @tgraf)
  • cni: fix interface sandbox in cmdAdd return value (#10482, @jaffcheng)
  • Correct clustermesh identity sync kvstore backend usage (to actually use the remote) (#10185, @raybejjani)
  • CRD: fix allocation logic of identities with the same set of labels (#11040, @aanm)
  • daemon: Fatal on startup when Identity CRD is enabled without k8s (#11015, @raybejjani)
  • daemon: fix cilium-agent helper message for disable-cnp-status-updates (#10414, @aanm)
  • daemon: Fix the "close of closed channel" panic (#11056, @Sen666666)
  • datapath/iptables: Masquerade hairpin traffic that traversed the stack (#10928, @tgraf)
  • datapath: Fix wrong rev-NAT xlation due to stale conntrack entry (#10984, @brb)
  • Do not depend on KUBERNETES_SERVICE_HOST nor KUBERNETES_SERVICE_PORT environment variables to detect if cilium is running in k8s mode (#11021, @aanm)
  • Do not skip datapath rewrites when an otherwise duplicate endpoint regeneration requires it. (#10949, @jrajahalme)
  • Do not throw errors for each new endpoint that is created (#10608, @aanm)
  • doc: Fix AKS guide regression (#10308, @tgraf)
  • endpoint: Avoid transient drops during policy map update (#10936, @jrajahalme)
  • eni: Fix unexpected IP release when agent restarts (#9888, @jaffcheng)
  • Envoy fixes for CVE-2020-8659, CVE-2020-8660, CVE-2020-8661, CVE-2020-8664 (#10434, @jrajahalme)
  • envoy: Take xds mutator lock for map access (#11541, @jrajahalme)
  • etcd: Fix gRPC load balancer issue (#10381, @tgraf)
  • Filter out bpftool probes emitting dmesg messages (#10164, @mrostecki)
  • Fix concurrent access of a variable used for metrics (#10137, @aanm)
  • Fix Docker getting started guide example. (#11023, @tklauser)
  • Fix eks restart pods helm (#10351, @tom-hadlaw-hs)
  • Fix fromCIDR policy on kernels 4.10 or older and extend test coverage (#11333, @willdeuschle)
  • Fix issue (#10092) which incorrectly configured route MTU with encryption and tunnel enabled. (#10218, @jrfastab)
  • Fix issue where --enable-remote-node-identity=false causes policy drops (#11006, @joestringer)
  • Fix issue where cilium-health cannot healthcheck remote endpoint in ENI mode (#11073, @christarazi)
  • Fix issue where lxc_config.h header disappears after some regenerations (#10630, @joestringer)
  • Fix memory corruption on clusters with IPv6 and NodePort enabled (#10192, @aanm)
  • Fix possible endpoint restore failure in CRD mode. (#10785, @aanm)
  • Fix pre-flight deployment for users upgrading from < 1.7 (#11599, @aanm)
  • Fix regression to avoid freeing alive IPs (#10207, @tgraf)
  • Fix several data races in unit tests (#10602, @tgraf)
  • Fix up ipcache access in datapath (#11525, @soumynathan)
  • Fix: resync IP addresses for instances that have been stopped for more than a minute (#11091, @willdeuschle)
  • Fixups for Correct clustermesh identity sync kvstore backend usage (#10243, @raybejjani)
  • fqdn: DNS proxy compresses DNS responses (#10366, @raybejjani)
  • GKE CI: Fix K8sDatapathConfig* tests (#10259, @tgraf)
  • Gracefully handle lost events from k8s without printing warnings (#11461, @aanm)
  • hubble/container: Properly deal with nil values in RingReader (#11323, @gandro)
  • Improve pod restarts on GKE (#10377, @ap4y)
  • IPAM related bugfixes (#10587, @tgraf)
  • IPAM: dynamically fetch the allocatable ipv4 addresses amount from instance limits (AWS) (#10831, @mvisonneau)
  • ipam: Protect release from releasing alive IP (#10066, @tgraf)
  • ipcache: Add probe to check for dump capability to support delete (#10144, @tgraf)
  • Istio integration has been updated to Istio release 1.5.4 (#11530, @jrajahalme)
  • k8s/identitybackend: exclude k8s namespace labels from CRD metadata (#11382, @rlenglet)
  • k8s: Defer marking node as ready to just API is served (#10767, @tgraf)
  • k8s: Do not send DeleteService event upon DeleteEndpoints (#11467, @brb)
  • k8s: Provide fallback for EndpointSlices detection if discovery API is not available (#11253, @tgraf)
  • Kubernetes connectivity check fixes (#10801, @tgraf)
  • kubernetes: Disable LocalNodeRoute while chaining (#10057, @tgraf)
  • kubernetes: do not disable node routes for portmap (#10415, @aanm)
  • kubernetes: do not set enable-endpoint-health-checking=false with portmap (#10566, @soumynathan)
  • Log more information for error 'Unable update CRD identity information with a reference for this node' (#10923, @aanm)
  • Make cilium bpf {ct, nat} {list, flush} to work when running in ipv6-only mode (#10193, @brb)
  • metrics: add missing metrics for cilium agent api handler (#10376, @fristonio)
  • node: Remove permanent ARP entry when remote node is deleted (#10227, @brb)
  • pkg/bpf: Protect each uintptr with runtime.KeepAlive (#10168, @brb)
  • pkg/endpoint: access endpoint state safely across go routines (#10140, @aanm)
  • pkg/k8s: add missing support for multi-stack (#11240, @aanm)
  • pkg/monitor: Add missing drop reasons (#10554, @Frankkkkk)
  • policy: fix innermap's flag error in eppolicymap (#10201, @zhiyuan0x)
  • policy: Keep NameManager locked during SelectorCache operations (#10501, @jrajahalme)
  • pre-flight: Correct tofqdns-precache container name (#10753, @raybejjani)
  • Remove stale rules for endpoints upon deletion in ENI mode (#11163, @christarazi)
  • Restore node IP behavior of Cilium < 1.7 (#11057, @tgraf)
  • service: Fix HealthCheckNodePort not displayed in API (#10240, @gandro)
  • set explicit liveness/readiness probe timeout for deny connectivity checks (#10581, @danwent)
  • Setting the agent.sleepAfterInit helm chart value to True will correctly configure the agent to sleep after Init (#11203, @seanmwinn)
  • Tight CNP and CCNP schema validation for badly formatted policies (yaml or json) (#10727, @aanm)
  • When running in Kubernetes, Cilium will run a periodic heartbeat and close all open Kubernetes client connections if the active connections become unresponsive. (#10184, @tom-hadlaw-hs)

CI Changes:

Misc Changes: