{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":81351346,"defaultBranch":"main","name":"epoxy-images","ownerLogin":"m-lab","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2017-02-08T16:38:44.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/3496264?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1726695547.0","currentOid":""},"activityList":{"items":[{"before":"922adf1817641f0672471336ff01790434dea56c","after":null,"ref":"refs/heads/sandbox-kinkade","pushedAt":"2024-09-18T21:39:07.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"}},{"before":"89e4c5fb5c3473be97b4f1b452c03dfe287b66e4","after":"445a2b0db39aec0475184326a20c51983f3a7884","ref":"refs/heads/main","pushedAt":"2024-09-18T21:39:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"},"commit":{"message":"Updates images to use k8s v1.28.14 (#270)\n\n* Upgrades k8s to v1.28.14\r\n\r\nAlso fixes download paths for various k8s components\r\n\r\n* Add kubeadm to curl download for packet virtual images\r\n\r\n* Fixes name of CNI binary in extracted multus files","shortMessageHtmlLink":"Updates images to use k8s v1.28.14 (#270)"}},{"before":"a4d498bc0b09a9c034990a957fecce7c65abf765","after":"922adf1817641f0672471336ff01790434dea56c","ref":"refs/heads/sandbox-kinkade","pushedAt":"2024-09-12T22:09:20.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"},"commit":{"message":"Fixes name of CNI binary in extracted multus files","shortMessageHtmlLink":"Fixes name of CNI binary in extracted multus files"}},{"before":null,"after":"a4d498bc0b09a9c034990a957fecce7c65abf765","ref":"refs/heads/sandbox-kinkade","pushedAt":"2024-09-12T21:39:40.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"},"commit":{"message":"Upgrades k8s to v1.28.14\n\nAlso fixes download paths for various k8s components","shortMessageHtmlLink":"Upgrades k8s to v1.28.14"}},{"before":"dfe0fbe76eaf9f328b314f25a67a7470fe035d02","after":null,"ref":"refs/heads/sandbox-kinkade","pushedAt":"2024-09-11T19:55:08.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"}},{"before":"71682674d9831aa542ef801653c634432dd48cba","after":"89e4c5fb5c3473be97b4f1b452c03dfe287b66e4","ref":"refs/heads/main","pushedAt":"2024-09-11T19:55:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"},"commit":{"message":"Changes flannel CNI config file suffix from .conf to .conflist (#269)\n\nBecause the config has two separate plugins configured (flannel, portmap), the\r\nfilename must be .conflist, else it gets parsed incorrectly, causing CNI to not\r\ncome up.","shortMessageHtmlLink":"Changes flannel CNI config file suffix from .conf to .conflist (#269)"}},{"before":null,"after":"dfe0fbe76eaf9f328b314f25a67a7470fe035d02","ref":"refs/heads/sandbox-kinkade","pushedAt":"2024-09-11T17:22:34.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"},"commit":{"message":"Changes flannel CNI config file suffix from .conf to .conflist\n\nBecause the config has two separate plugins configured (flannel, portmap), the\nfilename must be .conflist, else it gets parsed incorrectly, causing CNI to not\ncome up.","shortMessageHtmlLink":"Changes flannel CNI config file suffix from .conf to .conflist"}},{"before":"2a4f42f909de102a7a4211bab9ce801efea32b7b","after":null,"ref":"refs/heads/sandbox-kinkade","pushedAt":"2024-09-11T16:41:31.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"}},{"before":"9dcd071b522e435154c9d3ab80f6b97d2c526212","after":"71682674d9831aa542ef801653c634432dd48cba","ref":"refs/heads/main","pushedAt":"2024-09-11T16:41:30.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"},"commit":{"message":"Adds CNI config files to root fs of all machine images (#268)\n\nPreviously, we had a weird configuration in the k8s platform cluster with two\r\nseparate flannel DaemonSets, one for physical machines and one for virtual\r\nmachines. The whole point of that was writing out different CNI config files\r\ndepending on the machine type. This commit just bakes those CNI configs into\r\nthe filesystem to avoid that extra complexity in the cluster. Those files\r\nhaven't changed in years.","shortMessageHtmlLink":"Adds CNI config files to root fs of all machine images (#268)"}},{"before":null,"after":"2a4f42f909de102a7a4211bab9ce801efea32b7b","ref":"refs/heads/sandbox-kinkade","pushedAt":"2024-09-10T21:47:32.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"},"commit":{"message":"Adds CNI config files to root fs of all machine images\n\nPreviously, we had a weird configuration in the k8s platform cluster with two\nseparate flannel DaemonSets, one for physical machines and one for virtual\nmachines. The whole point of that was writing out different CNI config files\ndepending on the machine type. This commit just bakes those CNI configs into\nthe filesystem to avoid that extra complexity in the cluster. Those files\nhaven't changed in years.","shortMessageHtmlLink":"Adds CNI config files to root fs of all machine images"}},{"before":"727c8d08b39d7775c9f4864bf78df536ec6eb089","after":null,"ref":"refs/heads/sandbox-kinkade","pushedAt":"2024-08-05T14:52:01.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"}},{"before":"cd215642511ce7fbc35e4b41c7b1e8e83b5fe7ad","after":"9dcd071b522e435154c9d3ab80f6b97d2c526212","ref":"refs/heads/main","pushedAt":"2024-08-05T14:51:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"},"commit":{"message":"Wait for \"forwarded-ip[v6]s\" to be available from metadata server before reading value (#267)\n\n* Adds loop to write-metadata to be sure metadata value exists\r\n\r\nThere was a race between this script and whatever populates the\r\n\"forwarded-ip[v6]s\" metadata values where sometimes the requests for the values\r\nwould return 404s, other times not. This adds a loop to be sure the values are\r\npopulated before continuing.\r\n\r\n* Enforce that write-metadata.service runs before kubelet.service","shortMessageHtmlLink":"Wait for \"forwarded-ip[v6]s\" to be available from metadata server bef…"}},{"before":"d2495a6f2d1331ee28512fe0762bbac554e9526f","after":"727c8d08b39d7775c9f4864bf78df536ec6eb089","ref":"refs/heads/sandbox-kinkade","pushedAt":"2024-08-01T19:50:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"},"commit":{"message":"Enforce that write-metadata.service runs before kubelet.service","shortMessageHtmlLink":"Enforce that write-metadata.service runs before kubelet.service"}},{"before":null,"after":"d2495a6f2d1331ee28512fe0762bbac554e9526f","ref":"refs/heads/sandbox-kinkade","pushedAt":"2024-07-30T21:26:10.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"},"commit":{"message":"Adds loop to write-metadata to be sure metadata value exists\n\nThere was a race between this script and whatever populates the\n\"forwarded-ip[v6]s\" metadata values where sometimes the requests for the values\nwould return 404s, other times not. This adds a loop to be sure the values are\npopulated before continuing.","shortMessageHtmlLink":"Adds loop to write-metadata to be sure metadata value exists"}},{"before":"62b32e362aa6e8a6e7d169af1662c2a2a218aaeb","after":null,"ref":"refs/heads/sandbox-kinkade","pushedAt":"2024-07-30T21:15:24.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"}},{"before":null,"after":"62b32e362aa6e8a6e7d169af1662c2a2a218aaeb","ref":"refs/heads/sandbox-kinkade","pushedAt":"2024-07-30T19:58:24.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"},"commit":{"message":"Makes write-metadata.service its own unit for VMs\n\nPreviously it was just a symlink to the same unit file for physical machines,\nbut we now need it to be separate. Before, the unit file was trying to order\nthe unit against units that only existed on physical machines. Additionally,\nthis commit introduces a new dependency for the write-metadata.service unit,\ncausing it to run after google-startup-scripts.service in the hope that by this\ntime all server metadata will be populated.","shortMessageHtmlLink":"Makes write-metadata.service its own unit for VMs"}},{"before":"f2aa1f518680fb2b90a50070455f09aa460624aa","after":null,"ref":"refs/heads/sandbox-kinkade","pushedAt":"2024-07-25T18:25:05.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"}},{"before":"4ba57d251180469a58e6b59c3788d807260b02ea","after":"cd215642511ce7fbc35e4b41c7b1e8e83b5fe7ad","ref":"refs/heads/main","pushedAt":"2024-07-25T18:25:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"},"commit":{"message":"Adds loadbalanced=false to physical machines and standalone VMs (#266)\n\nWe have been adding the metadata file \"loadbalanced\" with a content/value of\r\n\"true\" to MIG instances. However, we have not been explicitly flagging\r\nnon-loadbalanced machines as loadbalanced=false. This commit makes the\r\ndeclaration explicity for all machine types, which should make filtering in\r\nBigQuery using this field more intuitive and consitent with other fields.","shortMessageHtmlLink":"Adds loadbalanced=false to physical machines and standalone VMs (#266)"}},{"before":null,"after":"f2aa1f518680fb2b90a50070455f09aa460624aa","ref":"refs/heads/sandbox-kinkade","pushedAt":"2024-07-24T21:45:23.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"},"commit":{"message":"Adds loadbalanced=false to physical machines and standalone VMs\n\nWe have been adding the metadata file \"loadbalanced\" with a content/value of\n\"true\" to MIG instances. However, we have not been explicitly flagging\nnon-loadbalanced machines as loadbalanced=false. This commit makes the\ndeclaration explicity for all machine types, which should make filtering in\nBigQuery using this field more intuitive and consitent with other fields.","shortMessageHtmlLink":"Adds loadbalanced=false to physical machines and standalone VMs"}},{"before":"c8ba48dcc2e85cc3909f073e70368cdaa1d91188","after":null,"ref":"refs/heads/sandbox-kinkade","pushedAt":"2024-07-15T20:44:55.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"}},{"before":"f14d3f3f7b36cbf60871ea54af3c21c15b61f6ba","after":"4ba57d251180469a58e6b59c3788d807260b02ea","ref":"refs/heads/main","pushedAt":"2024-07-15T20:44:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"},"commit":{"message":"Unconditionally add updates and security apt repos (#265)\n\nBy testing on my local machine, I verified that debootstrap only install the\r\nmain release repository. We also want -updates and -security\r\nrepositories, especially the latter. Without the latter unattended upgrades for\r\nsecurity updates will not work.","shortMessageHtmlLink":"Unconditionally add updates and security apt repos (#265)"}},{"before":null,"after":"c8ba48dcc2e85cc3909f073e70368cdaa1d91188","ref":"refs/heads/sandbox-kinkade","pushedAt":"2024-07-15T17:23:31.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"},"commit":{"message":"Unconditionally add updates and security apt repos\n\nBy testing on my local machine, I verified that debootstrap only install the\nmain release repository. We also want -updates and -security\nrepositories, especially the latter. Without the latter unattended upgrades for\nsecurity updates will not work.","shortMessageHtmlLink":"Unconditionally add updates and security apt repos"}},{"before":"1550ae911078f93b2c62095155d3ac3b90842579","after":null,"ref":"refs/heads/sandbox-kinkade","pushedAt":"2024-07-11T20:45:28.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"}},{"before":"22a638d1dd3c2fadf22457ab6842bd42aed43fe8","after":"f14d3f3f7b36cbf60871ea54af3c21c15b61f6ba","ref":"refs/heads/main","pushedAt":"2024-07-11T20:45:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"},"commit":{"message":"Configure Packer to ssh to VMs using IAP (#264)\n\n* Set googlecompute builder setting use_iap=true\r\n\r\nPreviously I had set up a special \"cloud-build-packer\" network tag on the VM\r\nthat packer created, and then created a special firewall rule to allow SSH to\r\nVMs with that tag. This was overly specific to Packer, and wasn't general\r\nenough for other use cases where we need/want SSH access into VMs. Instead, we\r\nnow set the use_iap=true setting, which will cause packer to tunnel through\r\nGoogle IAP (Identity Aware Proxy), which is used for this very purpose. Now,\r\nthere will be a generic firewall rule allow SSH access from IAP IPs.\r\n\r\n* Updates Packer build config to use Artifact Registry and v1.2\r\n\r\nContainer Registry is deprecated and going away. I'm taking this opportunity to\r\nupdate the build image URL to that of Artifact Registry. This also updates the\r\nimage version to 1.2 which includes some changes to the image that Packer\r\nneeds.\r\n\r\n* Sets iap_tunnel_launch_wait=60s\r\n\r\nIAP is currently not working. Testing this to see if it perhaps resolves the\r\nissue.\r\n\r\n* Adds debug logging to Packer, temporarily, to debug ssh via IAP\r\n\r\n* Forces Packer to use instance internal IP address\r\n\r\nMaybe this will make ssh access via IAP work?\r\n\r\n* Adds PACKER_LOG=1 to enable debug logging of Packer\r\n\r\n* Adds Google Cloud SDK install dir to Packer's PATH\r\n\r\n* Disables debug, propagate normal instances configs to others\r\n\r\nI think this is now working. Largely the underlying issue was that Packer was\r\nunable to find gcloud. Adding the Google SDK path to the environments PATH\r\nfixed this. It turns out that using IAP also allows us to create the VM with no\r\npublic IP, which seems better.\r\n\r\n* Removes omit_external_ip.. needed to install packages","shortMessageHtmlLink":"Configure Packer to ssh to VMs using IAP (#264)"}},{"before":"64015a24f15c8bfcf9f20347f7098ab052d0503e","after":"1550ae911078f93b2c62095155d3ac3b90842579","ref":"refs/heads/sandbox-kinkade","pushedAt":"2024-07-11T18:54:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"},"commit":{"message":"Removes omit_external_ip.. needed to install packages","shortMessageHtmlLink":"Removes omit_external_ip.. needed to install packages"}},{"before":"3aa67aa026d632b76020f6cc1900a13ceeee69dc","after":"64015a24f15c8bfcf9f20347f7098ab052d0503e","ref":"refs/heads/sandbox-kinkade","pushedAt":"2024-07-11T18:32:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"},"commit":{"message":"Disables debug, propagate normal instances configs to others\n\nI think this is now working. Largely the underlying issue was that Packer was\nunable to find gcloud. Adding the Google SDK path to the environments PATH\nfixed this. It turns out that using IAP also allows us to create the VM with no\npublic IP, which seems better.","shortMessageHtmlLink":"Disables debug, propagate normal instances configs to others"}},{"before":"0c9fd27841402b21c7d6edabc9737e4a5cbfee1b","after":"3aa67aa026d632b76020f6cc1900a13ceeee69dc","ref":"refs/heads/sandbox-kinkade","pushedAt":"2024-07-11T17:57:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"},"commit":{"message":"Adds Google Cloud SDK install dir to Packer's PATH","shortMessageHtmlLink":"Adds Google Cloud SDK install dir to Packer's PATH"}},{"before":"b4a61b0999e329f881aa02f678fded8788102016","after":"0c9fd27841402b21c7d6edabc9737e4a5cbfee1b","ref":"refs/heads/sandbox-kinkade","pushedAt":"2024-07-11T17:50:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"},"commit":{"message":"Adds PACKER_LOG=1 to enable debug logging of Packer","shortMessageHtmlLink":"Adds PACKER_LOG=1 to enable debug logging of Packer"}},{"before":"5acef8649ee565ef18617d8d784565a3dc5da1f1","after":"b4a61b0999e329f881aa02f678fded8788102016","ref":"refs/heads/sandbox-kinkade","pushedAt":"2024-07-11T17:43:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"},"commit":{"message":"Forces Packer to use instance internal IP address\n\nMaybe this will make ssh access via IAP work?","shortMessageHtmlLink":"Forces Packer to use instance internal IP address"}},{"before":"ec9d40278b968737815c74e9c48463955e15e9b6","after":"5acef8649ee565ef18617d8d784565a3dc5da1f1","ref":"refs/heads/sandbox-kinkade","pushedAt":"2024-07-11T17:35:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nkinkade","name":null,"path":"/nkinkade","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1392825?s=80&v=4"},"commit":{"message":"Adds debug logging to Packer, temporarily, to debug ssh via IAP","shortMessageHtmlLink":"Adds debug logging to Packer, temporarily, to debug ssh via IAP"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xOFQyMTozOTowNy4wMDAwMDBazwAAAAS6L7uy","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xOFQyMTozOTowNy4wMDAwMDBazwAAAAS6L7uy","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNy0xMVQxNzozNTo0Mi4wMDAwMDBazwAAAAR9Gjhg"}},"title":"Activity · m-lab/epoxy-images"}