以下の情報を参考に GKE Image Streaming の中身を想像してみる。
- 高速なアプリケーション起動と自動スケーリングのための GKE イメージ ストリーミングの導入 の紹介記事
- 徳永さんの Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する のスライド
- utam0k さんの CNDF 2023 の Lazy Pulling のスライド
以下の情報を参考に GKE Image Streaming の中身を想像してみる。
diff --git a/vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/k8schain.go b/vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/k8schain.go | |
index d90ac4d1..36fb28a9 100644 | |
--- a/vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/k8schain.go | |
+++ b/vendor/github.com/google/go-containerregistry/pkg/authn/k8schain/k8schain.go | |
@@ -130,11 +130,14 @@ func NewNoClient() (authn.Keychain, error) { | |
return New(nil, Options{}) | |
} | |
-type lazyProvider credentialprovider.LazyAuthConfiguration | |
+type lazyProvider struct { |
extern crate nix; | |
use std::ffi::CString; | |
use std::ptr::write; | |
use nix::libc::{free, malloc, strlen}; | |
fn main() { | |
let c_str1 = CString::new("Hello, ").unwrap(); | |
let c_str2 = CString::new("world!").unwrap(); |
package main | |
import "fmt" | |
func main() { | |
a := []int{5, 3, 3, 4, 5} | |
fmt.Println(findMaximum(a, 0, 4)) | |
} | |
func findMaximum(A []int, left, right int) int { |
package main | |
// Hamming weight algorithm | |
// https://en.wikipedia.org/wiki/Hamming_weight | |
const m1 = 0x5555555555555555 | |
const m2 = 0x3333333333333333 | |
const m4 = 0x0f0f0f0f0f0f0f0f | |
const h01 = 0x0101010101010101 |
package main | |
import ( | |
"bufio" | |
"fmt" | |
"os" | |
"strconv" | |
"strings" | |
) |
package main | |
import ( | |
"bufio" | |
"fmt" | |
"os" | |
"strconv" | |
"strings" | |
) |
package main | |
import ( | |
"bufio" | |
"fmt" | |
"os" | |
"strconv" | |
"strings" | |
) |
package main | |
import ( | |
"bufio" | |
"fmt" | |
"os" | |
"strconv" | |
"strings" | |
) |
package main | |
import ( | |
"bufio" | |
"fmt" | |
"os" | |
"strconv" | |
"strings" | |
) |