{"push_id":2921617151,"size":3,"distinct_size":3,"ref":"refs/heads/dual-stack","head":"11448766fe0aacbf285262a270ef29ea16b6d401","before":"eed0b57f6fa8ed78586075d3978d0aeec94afb9c","commits":[{"sha":"bb422a3ea11e152190f0ff53aec3aeb65211bce2","author":{"name":"Paul Michali","email":"891610ca44017a7d6dd857b7dc1d96093d637453@cisco.com"},"message":"IPv6: Adjust subnet prefix used for NAT64.\n\nThis commit does several things related to the NAT64 prefix, as specified\nby the NAT64_V4_SUBNET_PREFIX environment variable. This prefix is for a\n/16 subnet.\n\nFirst, we want the prefix to be within one of the two private network\nranges (172.16.0.0/12 or 10.0.0.0/8).\n\nSecond, to accommodate that, the NAT64_V4_SUBNET_PREFIX will be two octets,\ninstead of one. The default, if not specified, will be 172.18, to avoid\ndocker usage of that private network.\n\nThird, the code will range check the prefix, to ensure that it is within\nrange, based on the private network selected. 172.16 to 172.31 or 10.0 to\n10.253 values are allowed.\n\nFourth, the cluster ID is added to the prefix, so that a unique subnet is\nused for each cluster. This affects the allowable values for the prefix.\n\nFor 172.16.0.0/12, the prefix plus cluster ID must be from 172.16 to\n172.31. For 10.0.0.0/8, the prefix plus cluster ID must be from 10.0 to\n10.253. So, for example, if the default 172.18 is used, then cluster IDs\ncan be from 0 to 13.\n\nAnother side effect of this change is w.r.t. legacy mode, where the user\nspecifies (only) the DIND_LABEL. In that case, a cluster ID is generated,\nand we now will use numbers from 1..13 to help keep the values within the\nrange for the V4 mapping prefix (using 13 instead of 15 as the default\nprefix is 172.18).\n\nIf the user wants to use the legacy DIND_LABEL, but have a larger range\nfor cluster IDs, they can set the NAT64_V4_SUBNET_PREFIX to the 10.0.0.0/8\nsubnet and/or explicitly set the CLUSTER_ID.\n\nFor the multicluster IPv6 CI test, it creates a cluster using the default\ncluster ID (0), one with cluster ID specified (20), and legacy mode with q\ncluster ID generated between 1..13. Since the default prefix is 172.18, the\nsecond cluster will create a prefix (172.18 + 20 = 172.38) that is outside\nthe 172.16.0.0/12 private network and will be rejected. To avoid this, we'll\nuse a base prefix of 10.100. That will use 10.100 for the first cluster,\n10.120 for the second cluster, and a random value of 10.101 to 10.113 for\nthe third cluster. This avoids any conflict, and ensures that the prefix is\nwithin the 10.0.0.0/8 private network.\n\nFixes Issue: #220","distinct":true,"url":"https://api.github.com/repos/pmichali/kubeadm-dind-cluster/commits/bb422a3ea11e152190f0ff53aec3aeb65211bce2"},{"sha":"3d689a49a7e6c65e8e3dad91198f71f64323ef61","author":{"name":"k8s-ci-robot","email":"5c2029016e1607554af814ace319699a11cecd88@users.noreply.github.com"},"message":"Merge pull request #222 from pmichali/nat64-prefix\n\nIPv6: Adjust subnet prefix used for NAT64.","distinct":true,"url":"https://api.github.com/repos/pmichali/kubeadm-dind-cluster/commits/3d689a49a7e6c65e8e3dad91198f71f64323ef61"},{"sha":"11448766fe0aacbf285262a270ef29ea16b6d401","author":{"name":"Paul Michali","email":"891610ca44017a7d6dd857b7dc1d96093d637453@cisco.com"},"message":"Phase 2: Dual-stack support.\n\nKubernetes is being updated to support dual-stack networking. With the\ninitial release, pods and management networks will have both IPv4 and\nIPv6 addresses. The service network, however, will use only a single IP\nfamily.\n\nThis commit adds (more) support to k-d-c for provisioning clusters in\nthis mode. The following changes have been made:\n\n- Pod network has both IPv4 and IPv6 addresses (configurable).\n- In the DinD image, the dindnet script updates include:\n    * creates pair of IPs on dind0 interface.\n    * configures PTP and bridge plugin with multiple subnets.\n    * sets kubelet DNS arg to DNS server, if service family is V6.\n    * sets node IP in /etc/hosts based on service network family.\n    * sets /etc/resolv.conf entry (for DNS) same as IPv4 mode.\n- Create pod network static routes for IPv4 and IPv6.\n- Error checking of CIDRs provided to ensure subnet is large enough\n  for suffix to be added.\n- Creates ip6tables rule to provide DNAT access to outside for IPv6.\n- CI test added for ipv4 and dual-stack mode (internal ping, external\n  ping, namespace lookups).\n- README updated to talk about dual-stack mode.\n- Maintains backward compatibility with older DinD images.\n- Place a /node-info file in the DinD image that indicates the image\n  (not K8s) supports the configuring of a cluster in dual-stack mode.\n  This file can be used for additional flags, in the future.\n\nThe changes made here, will allow a cluster to be brought up in dual-\nstack mode, however, there are still changes needed in Kubernetes code\n(as part of the dual-stack KEP). There are the following limitations\nto this capability:\n\n- Using IPv6 for the service network doesn't work yet. Need K8s changes.\n  Have confirmed with IPv4 service network, however.\n- Multicluster mode has not been tested yet for dual-stack (will add later).\n- Expects that there is both IP4 and IPv6 access to the outside. This means\n  that running under GCE will not work (as it expects only IPv4 access to\n  outside). Future updates can add ability to enable DNS64/NAT64 to k-d-c,\n  like is done with IPv6 only mode.\n- It is the responsibility of the user to ensure that when they restore a\n  cluster, they are using the same IP mode as when the snapshot was created.\n  Since the kubeadm-dind-net network persists, after a down command, if a\n  cluster is restored using a different IP mode, the network will not be\n  correctly configured. This is a general limitation, unrelated to dual-stack.\n- CI does not have direct access to external IPv6 hosts, so dual-stack (and\n  IPv6 only) cannot test external IPv6 pings.\n\nPartial Fix: #208","distinct":true,"url":"https://api.github.com/repos/pmichali/kubeadm-dind-cluster/commits/11448766fe0aacbf285262a270ef29ea16b6d401"}]}
{"actor":{"display_login":"pmichali"}}