in projects/aws/image-builder/builder/manifests.go [173:224]
func extractAndPrepManifestTarball(tarballFile, privateEksDServerDomain, privateEksAServerDomain string) error {
log.Println("Manifest tarball provided, extracting to directory")
manifestDir, err := getManifestRoot()
if err != nil {
return fmt.Errorf("Error retrieving manifest root")
}
if err = extractTarball(tarballFile, manifestDir); err != nil {
return fmt.Errorf("Error extracting tarball: %v", err)
}
// Replacing eks-a bundles manifest hostname
// These endpoints are used for artifacts like containerd, crictl & etcdadm
// Find all eks-a bundles manifest and replace hostname
files, err := os.ReadDir(manifestDir)
if err != nil {
return err
}
for _, file := range files {
if !file.IsDir() {
// Find EKS-D Manifests and replace prod distro domain with private server's
absFilePath := filepath.Join(manifestDir, file.Name())
eksDManifestFilePattern := strings.ReplaceAll(eksDistroManifestFileNameFormat, "%s", "*")
eksDMatch, err := filepath.Match(eksDManifestFilePattern, file.Name())
if err != nil {
return err
}
if eksDMatch {
log.Printf("Replacing EKS-D domain name in file: %s\n", file.Name())
if err = replaceStringInFile(absFilePath, fmt.Sprintf("https://%s", eksDistroProdDomain), privateEksDServerDomain); err != nil {
return err
}
}
// Find EKS-A Bundles Manifests and replace prod anywhere domain with private server's
eksABundlesManifestFilePattern := strings.ReplaceAll(eksAnywhereBundlesFileNameFormat, "%s", "*")
eksAMatch, err := filepath.Match(eksABundlesManifestFilePattern, file.Name())
if err != nil {
return err
}
fmt.Printf("File: %s, Match: %t, Pattern: %s\n", file.Name(), eksAMatch, eksABundlesManifestFilePattern)
if eksAMatch {
log.Printf("Replacing EKS-A domain name in file: %s\n", file.Name())
if err = replaceStringInFile(absFilePath, fmt.Sprintf("https://%s", eksAnywhereAssetsProdDomain), privateEksAServerDomain); err != nil {
return err
}
}
}
}
return nil
}