
Security News
vlt Launches "reproduce": A New Tool Challenging the Limits of Package Provenance
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
github.com/mitalipaygude/eks-anywhere-build-tooling/projects/aws/image-builder
Image Builder Tool is a cli that builds EKS-A compatible Kubernetes node images. The tool is based on upstream image-builder project and uses packer to build the node images. The tool always builds an image with the latest release artifacts and latest OS packages.
Supported Providers
Supported OSes
Supported Release Channels
Supported Firmwares
Vsphere is one of the supported infrastructure providers the Image builder tool can build EKS-A node images for. In order to build a node image for vSphere, the image builder tool needs to run from an environment with network access to vcenter.
Inventory:
Configuration:
Interaction:
Snapshot management:
Provisioning
Resource Pool
Datastore
Network
sudo apt update -y
sudo apt install jq unzip make ansible -y
sudo snap install yq
govc library.create "<library name>"
{
"cluster":"<vsphere cluster used for image building>",
"convert_to_template":"false",
"create_snapshot":"<creates a snapshot on base OVA after building if set to true>",
"datacenter":"<vsphere datacenter used for image building>",
"datastore":"<datastore used to store template/for image building>",
"folder":"<folder on vsphere to create temporary vm>",
"insecure_connection":"true",
"linked_clone":"false",
"network":"<vsphere network used for image building>",
"password":"<vcenter username>",
"resource_pool":"<resource pool used for image building vm>",
"username":"<vcenter username>",
"vcenter_server":"<vcenter fqdn>",
"vsphere_library_name": "<vsphere content library name>"
}
image-builder build --os ubuntu --hypervisor vsphere --vsphere-config <path to above json file> --release-channel <release channel, ex 1-23>
Baremetal is one of the supported infrastructure providers the Image builder tool can build EKS-A node images for. In order to build a node image for baremetal, the image builder tool needs to run on baremetal machine.
sudo apt update -y
sudo apt install jq make qemu-kvm libvirt-daemon-system libvirt-clients virtinst cpu-checker libguestfs-tools libosinfo-bin unzip ansible -y
sudo snap install yq
sudo usermod -a -G kvm $USER
sudo chmod 666 /dev/kvm
sudo chown root:kvm /dev/kvm
echo "HostKeyAlgorithms +ssh-rsa" >> /home/$USER/.ssh/config
echo "PubkeyAcceptedKeyTypes +ssh-rsa" >> /home/$USER/.ssh/config
image-builder build --os ubuntu --hypervisor baremetal --release-channel <release channel, ex 1-23>
The baremetal image built from image-builder tool should be hosted and its URL should be provided to osImageURL
under TinkerbellDatacenterConfig
in the cluster spec to create a cluster using the built node image.
The Image Builder tool also supports some additional configuration. For now this is limited to supporting a proxy. Users can use proxy server to route outbound requests to internet. To configure the image builder tool to use proxy, simply export the following proxy environment variables
export HTTP_PROXY=<HTTP proxy URL e.g. http://proxy.corp.com:80>
export HTTPS_PROXY=<HTTPS proxy URL e.g. http://proxy.corp.com:443>
export NO_PROXY=<No proxy>
Nutanix is one of the supported infrastructure providers the Image builder tool can build EKS-A node images for. In order to build a node image for Nuntaix AHV, the image builder tool needs to run from an environment with network access to Nutanix Prism Central Endpoint.
sudo apt update -y
sudo apt install jq unzip make ansible -y
sudo snap install yq
{
"nutanix_cluster_name": "",
"image_name": "",
"source_image_name": "",
"nutanix_endpoint": "",
"nutanix_insecure": "",
"nutanix_port": "9440",
"nutanix_username": "",
"nutanix_password": "",
"nutanix_subnet_name": ""
}
image-builder build --os ubuntu --hypervisor nutanix --nutanix-config <path to above json file> --release-channel <release channel, ex 1-23>
Image builder only supports building Ubuntu in an airgapped mode for now.
Create the config json file for respective provider and make sure to include the fields required for airgapped building. An example of baremetal config json for ubuntu airgapped builds are below
{
"eksa_build_tooling_repo_url": "https://internal-repos/eks-anywhere-build-tooling.git",
"image_builder_repo_url": "https://internal-repos/image-builder.git",
"private_artifacts_eksd_fqdn": "http://artifactory:8081/artifactory",
"private_artifacts_eksa_fqdn": "http://artifactory:8081/artifactory/EKS-A",
"extra_repos": "/home/airgapped/sources.list",
"disable_public_repos": "true",
"iso_url": "http://artifactory:8081/artifactory/EKS-A/ISO/ubuntu-20.04.1-legacy-server-amd64.iso",
"iso_checksum": "f11bda2f2caed8f420802b59f382c25160b114ccc665dbac9c5046e7fceaced2",
"iso_checksum_type": "sha256"
}
Install pre-requisites required for image builder in the environment or admin machine.
From an environment with internet access run the following command to generate the manifest tarball
image-builder download manifests
This will download a eks-a-manifests.tar in the current working directory. This tarball is required for airgapped building.
Replicate all the required EKS-D and EKS-A artifacts to the internal artifacts server like artifactory. Required artifacts are as follows EKS-D amd64 artifacts for specific release branch
kube-apiserver.tar
kube-scheduler.tar
kube-proxy.tar
kube-controller-manager.tar
etcd.tar
coredns.tar
pause.tar
kubectl
kubeadm
kubelet
etcd-linux-amd64-v.tar.gz
cni-plugins-linux-amd64-v.tar.gz
EKS-A amd64 artifacts for specific release bundle version
In addition to these EKS-D and EKS-A artifacts please ensure the base ubuntu iso is also hosted internally.
Run image builder in airgapped mode
image-builder build --os ubuntu --hypervisor baremetal --release-channel 1-27 --air-gapped --baremetal-config baremetal.json --manifest-tarball eks-a-manifests.tar
FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.