chore(ci): drop equinix metal e2e-test

Drop Equinix Metal e2e tests, due to EM machines mostly not booting
properly over PXE, drop the test as it adds no value.

Fixes: #10034

Signed-off-by: Noel Georgi <git@frezbo.dev>
This commit is contained in:
Noel Georgi 2024-12-26 20:54:55 +05:30
parent 4189454441
commit e79c9e1277
No known key found for this signature in database
GPG Key ID: 21A9F444075C9E36
10 changed files with 46 additions and 546 deletions

View File

@ -1,6 +1,6 @@
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
#
# Generated on 2024-12-25T15:13:54Z by kres fcff05e.
# Generated on 2024-12-26T15:20:08Z by kres fcff05e.
name: default
concurrency:
@ -1237,122 +1237,6 @@ jobs:
/tmp/logs-*.tar.gz
/tmp/support-*.zip
retention-days: "5"
integration-equinix-metal:
permissions:
actions: read
contents: write
issues: read
packages: write
pull-requests: read
runs-on:
- self-hosted
- generic
if: contains(fromJSON(needs.default.outputs.labels), 'integration/equinix-metal')
needs:
- default
steps:
- name: gather-system-info
id: system-info
uses: kenchan0130/actions-system-info@v1.3.0
continue-on-error: true
- name: print-system-info
run: |
MEMORY_GB=$((${{ steps.system-info.outputs.totalmem }}/1024/1024/1024))
OUTPUTS=(
"CPU Core: ${{ steps.system-info.outputs.cpu-core }}"
"CPU Model: ${{ steps.system-info.outputs.cpu-model }}"
"Hostname: ${{ steps.system-info.outputs.hostname }}"
"NodeName: ${NODE_NAME}"
"Kernel release: ${{ steps.system-info.outputs.kernel-release }}"
"Kernel version: ${{ steps.system-info.outputs.kernel-version }}"
"Name: ${{ steps.system-info.outputs.name }}"
"Platform: ${{ steps.system-info.outputs.platform }}"
"Release: ${{ steps.system-info.outputs.release }}"
"Total memory: ${MEMORY_GB} GB"
)
for OUTPUT in "${OUTPUTS[@]}";do
echo "${OUTPUT}"
done
continue-on-error: true
- name: checkout
uses: actions/checkout@v4
- name: Unshallow
run: |
git fetch --prune --unshallow
- name: Set up Docker Buildx
id: setup-buildx
uses: docker/setup-buildx-action@v3
with:
driver: remote
endpoint: tcp://buildkit-amd64.ci.svc.cluster.local:1234
timeout-minutes: 10
- name: Mask secrets
run: |
echo "$(sops -d .secrets.yaml | yq -e '.secrets | to_entries[] | "::add-mask::" + .value')"
- name: Set secrets for job
run: |
sops -d .secrets.yaml | yq -e '.secrets | to_entries[] | .key + "=" + .value' >> "$GITHUB_ENV"
- name: Download artifacts
if: github.event_name != 'schedule'
uses: actions/download-artifact@v4
with:
name: talos-artifacts
path: _out
- name: Fix artifact permissions
if: github.event_name != 'schedule'
run: |
xargs -a _out/executable-artifacts -I {} chmod +x {}
- name: ci-temp-release-tag
if: github.event_name != 'schedule'
run: |
make ci-temp-release-tag
- name: build
if: github.event_name == 'schedule'
env:
IMAGE_REGISTRY: registry.dev.siderolabs.io
PLATFORM: linux/amd64,linux/arm64
PUSH: "true"
run: |
make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64
- name: talosctl-cni-bundle
if: github.event_name == 'schedule'
run: |
make talosctl-cni-bundle
- name: e2e-equinix-metal-prepare
env:
IMAGE_REGISTRY: registry.dev.siderolabs.io
run: |
make e2e-equinix-metal-prepare
- name: checkout contrib
uses: actions/checkout@v4
with:
path: _out/contrib
ref: main
repository: siderolabs/contrib
- name: setup tf
uses: hashicorp/setup-terraform@v3
with:
terraform_wrapper: "false"
- name: tf apply
env:
TF_E2E_ACTION: apply
TF_E2E_TEST_TYPE: equinix-metal
TF_SCRIPT_DIR: _out/contrib
run: |
make e2e-cloud-tf
- name: e2e-equinix-metal
run: |
make e2e-equinix-metal
- name: tf destroy
if: always()
env:
TF_E2E_ACTION: destroy
TF_E2E_TEST_TYPE: equinix-metal
TF_SCRIPT_DIR: _out/contrib
run: |
make e2e-cloud-tf
integration-extensions:
permissions:
actions: read

View File

@ -1,119 +0,0 @@
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
#
# Generated on 2024-09-09T13:58:35Z by kres 8be5fa7.
name: integration-equinix-metal-cron
concurrency:
group: ${{ github.head_ref || github.run_id }}
cancel-in-progress: true
"on":
schedule:
- cron: 30 7 * * *
jobs:
default:
runs-on:
- self-hosted
- generic
steps:
- name: gather-system-info
id: system-info
uses: kenchan0130/actions-system-info@v1.3.0
continue-on-error: true
- name: print-system-info
run: |
MEMORY_GB=$((${{ steps.system-info.outputs.totalmem }}/1024/1024/1024))
OUTPUTS=(
"CPU Core: ${{ steps.system-info.outputs.cpu-core }}"
"CPU Model: ${{ steps.system-info.outputs.cpu-model }}"
"Hostname: ${{ steps.system-info.outputs.hostname }}"
"NodeName: ${NODE_NAME}"
"Kernel release: ${{ steps.system-info.outputs.kernel-release }}"
"Kernel version: ${{ steps.system-info.outputs.kernel-version }}"
"Name: ${{ steps.system-info.outputs.name }}"
"Platform: ${{ steps.system-info.outputs.platform }}"
"Release: ${{ steps.system-info.outputs.release }}"
"Total memory: ${MEMORY_GB} GB"
)
for OUTPUT in "${OUTPUTS[@]}";do
echo "${OUTPUT}"
done
continue-on-error: true
- name: checkout
uses: actions/checkout@v4
- name: Unshallow
run: |
git fetch --prune --unshallow
- name: Set up Docker Buildx
id: setup-buildx
uses: docker/setup-buildx-action@v3
with:
driver: remote
endpoint: tcp://buildkit-amd64.ci.svc.cluster.local:1234
timeout-minutes: 10
- name: Mask secrets
run: |
echo "$(sops -d .secrets.yaml | yq -e '.secrets | to_entries[] | "::add-mask::" + .value')"
- name: Set secrets for job
run: |
sops -d .secrets.yaml | yq -e '.secrets | to_entries[] | .key + "=" + .value' >> "$GITHUB_ENV"
- name: Download artifacts
if: github.event_name != 'schedule'
uses: actions/download-artifact@v4
with:
name: talos-artifacts
path: _out
- name: Fix artifact permissions
if: github.event_name != 'schedule'
run: |
xargs -a _out/executable-artifacts -I {} chmod +x {}
- name: ci-temp-release-tag
if: github.event_name != 'schedule'
run: |
make ci-temp-release-tag
- name: build
if: github.event_name == 'schedule'
env:
IMAGE_REGISTRY: registry.dev.siderolabs.io
PLATFORM: linux/amd64,linux/arm64
PUSH: "true"
run: |
make talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64
- name: talosctl-cni-bundle
if: github.event_name == 'schedule'
run: |
make talosctl-cni-bundle
- name: e2e-equinix-metal-prepare
env:
IMAGE_REGISTRY: registry.dev.siderolabs.io
run: |
make e2e-equinix-metal-prepare
- name: checkout contrib
uses: actions/checkout@v4
with:
path: _out/contrib
ref: main
repository: siderolabs/contrib
- name: setup tf
uses: hashicorp/setup-terraform@v3
with:
terraform_wrapper: "false"
- name: tf apply
env:
TF_E2E_ACTION: apply
TF_E2E_TEST_TYPE: equinix-metal
TF_SCRIPT_DIR: _out/contrib
run: |
make e2e-cloud-tf
- name: e2e-equinix-metal
run: |
make e2e-equinix-metal
- name: tf destroy
if: always()
env:
TF_E2E_ACTION: destroy
TF_E2E_TEST_TYPE: equinix-metal
TF_SCRIPT_DIR: _out/contrib
run: |
make e2e-cloud-tf

View File

@ -1,6 +1,6 @@
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
#
# Generated on 2024-11-28T12:55:15Z by kres 232fe63.
# Generated on 2024-12-26T15:20:08Z by kres fcff05e.
name: slack-notify
"on":
@ -32,7 +32,6 @@ name: slack-notify
- integration-aws-nvidia-nonfree-cron
- integration-azure-cron
- integration-gcp-cron
- integration-equinix-metal-cron
types:
- completed
jobs:

View File

@ -14,7 +14,7 @@ spec:
15D5721F5F5BAF121495363EFE042E3D4085A811,
CC51116A94490FA6FB3C18EB2401FCAE863A06CA,
4919F560F0D35F80CF382D76E084A2DF1143C14D,
966BC282A680D8BB3E8363E865933E76F0549B0D,
11177A43C6E3752E682AC690DBD13117B0A14E93,
AA5213AF261C1977AF38B03A94B473337258BFD5
---
kind: common.Repository
@ -79,7 +79,6 @@ spec:
- integration-aws-nvidia-nonfree
- integration-azure
- integration-gcp
- integration-equinix-metal
---
kind: common.GHWorkflow
spec:
@ -2147,66 +2146,6 @@ spec:
TF_SCRIPT_DIR: _out/contrib
TF_E2E_TEST_TYPE: gcp
TF_E2E_ACTION: destroy
- name: integration-equinix-metal
buildxOptions:
enabled: true
sops: true
depends:
- default
runners:
- self-hosted
- generic # we can use generic here since the tests run against a remote talos cluster
crons:
- '30 7 * * *'
triggerLabels:
- integration/equinix-metal
steps:
- name: download-artifacts
conditions:
- not-on-schedule
artifactStep:
type: download
artifactName: talos-artifacts
artifactPath: _out
- name: ci-temp-release-tag
conditions:
- not-on-schedule
- name: build
conditions:
- only-on-schedule
command: talosctl-linux-amd64 kernel sd-boot sd-stub initramfs installer imager talos _out/integration-test-linux-amd64
environment:
PLATFORM: linux/amd64,linux/arm64
IMAGE_REGISTRY: registry.dev.siderolabs.io
PUSH: true
- name: talosctl-cni-bundle
conditions:
- only-on-schedule
- name: e2e-equinix-metal-prepare
environment:
IMAGE_REGISTRY: registry.dev.siderolabs.io
- name: checkout contrib
checkoutStep:
repository: siderolabs/contrib
ref: main
path: _out/contrib
- name: setup tf
terraformStep: true
- name: tf apply
command: e2e-cloud-tf
environment:
TF_SCRIPT_DIR: _out/contrib
TF_E2E_TEST_TYPE: equinix-metal
TF_E2E_ACTION: apply
- name: e2e-equinix-metal
- name: tf destroy
command: e2e-cloud-tf
conditions:
- always
environment:
TF_SCRIPT_DIR: _out/contrib
TF_E2E_TEST_TYPE: equinix-metal
TF_E2E_ACTION: destroy
---
kind: common.Renovate
spec:

View File

@ -6,8 +6,6 @@ secrets:
AZURE_CLIENT_ID: ENC[AES256_GCM,data:sr2EhYwKjlsHYatqEoDXcm3yp5W8kzLyU4wpUPVvIwquxfM/,iv:ZMqoaG+F9JCfpUUbH6S0vvpwUmrfbCNpv4EJzFkb7Ng=,tag:RN5psxUWFa0SHroi4iqPHQ==,type:str]
AZURE_CLIENT_SECRET: ENC[AES256_GCM,data:DXH6XWJ1hfdrJJ2ue7Oq2cKsZKjuIAVACCBXRrp86EjrMY/4I9StnA==,iv:GHFK7zQmBQNUHOQvozGigW1pvfbFxaOZQR/HJc58XD4=,tag:1ciek8BjoJjTjIaoImJj6Q==,type:str]
AZURE_TENANT_ID: ENC[AES256_GCM,data:dZapmCqJeTx9C0us38mxDpPbdxBn39fJOmIc+5MgnAI6esT5,iv:s/GuStsQKgdc/6jpq2YMAE9GggLH/xGfrDzzgk/4kmQ=,tag:+dVM3/Joq3OA/opmSU6TSA==,type:str]
EM_PROJECT_ID: ENC[AES256_GCM,data:nPVZ+Uoul/W7UpxIoeMP1n3YhuEjq3fNKD+zoso4FBP2Obd0,iv:SSF8KZBczWvCJjZpvDo60mnoM21CrzdmmKs2reLi8w0=,tag:VKjsQSHqiQY+IzkIXO70MA==,type:str]
EM_API_TOKEN: ENC[AES256_GCM,data:PnNDZTRDTubebmtAuH1sAuEp5ZwzVie5WA0AhCUk26M=,iv:5MdcOwY+QrIdkFgCXcs2rBGCXQBnhi/EDxTPWr/vCMs=,tag:mcQ9qrWPYMaPalzr/GV7pQ==,type:str]
GOOGLE_PROJECT_ID: ENC[AES256_GCM,data:egcG5hIa5aq6tSRjhA==,iv:g/6pkcSJIQNNgoon6X+6DH2JaQgLKfTDpPUNFjlJ6Xg=,tag:ygF0I8bLRRbj2RdogQqxmw==,type:str]
GOOGLE_CREDENTIALS: ENC[AES256_GCM,data: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,iv:nLXpwEqTJaQnZlE0CiQl+hWlBIJGSa8tEUebXpkMWec=,tag:MZ/FJeksYkqCsLaELJDq0A==,type:str]
sops:
@ -19,73 +17,71 @@ sops:
- recipient: age1xrpa9ujxxcj2u2gzfrzv8mxak4rts94a6y60ypurv6rs5cpr4e4sg95f0k
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvL24xdzZ5WVF6Mmxxa0NW
TnFSM00xWHFYRHJhbmxZU09hWG0weFNBdkdFCmVrQ1pxd2hJWkltMHo1S0dvMWwr
QXlMN1FCbTc3ajZQVS9xNXNtUDB0NEkKLS0tIHdtbmd3NG9Kdlo1VzdqMENVcVkr
ZE0zRWwxVzBLL3Q1WW1FNmVvc0txZm8K+GkjAq/WSduuDrsbeyqVi29Pj2IL25mA
a11K/HVqTCU834uHQXjpN3keJS23v5BJGZCpOwVXyZX8f1yAm/ZQAA==
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrcFdwc0JTcGJISmlEYVpH
ajJmOXUybkJaeWpBVzdaZjExcmRpUTBwVlNvClZMZzNhc3g1bVVqd1YvWlZOUGIw
dm04WnZLVUV2dzBsM0xISm9Kc1FGNlEKLS0tIG4xSUJvUHloTUNLZGJUbjhKYmI2
aGRDNzBvb09ZMnFXYjQyQ01VT3JWTkUKlxoDwPBcNAeXTy+qGg7QI7mZAV7bKEWT
XGqFTGipHlZ3fLG8dqlSPGXVmy3rSyCkKJgvgbQNut4UMZtZSjXe5A==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-09-05T16:58:15Z"
mac: ENC[AES256_GCM,data:/7bib7AGGFlP2l93l0Ht6r4Guxaq0sVtsDEbmyEYHYZh1NKwIy/RO0W3SwGXcQPNI9vgPjdP3lsXsUiJ0B0ADxsjWrTjZOkIHxhsBr6Yr59uTGiGOMFEYKPSK5+5ZG9dR4yu0CHyZlxHq+P1L/grsmb0ucazfWguM9y58hqpG24=,iv:ZgWz2o47PgN+3uXDzTID/IgSe/Y5fd+Ubz7MlHKgmRg=,tag:CUbJx/WHlSr5/Jpyf7ODcg==,type:str]
lastmodified: "2024-12-26T15:24:43Z"
mac: ENC[AES256_GCM,data:0y4Td5B6y5/GfTUSokDMQkWGHvcdw128nYjcBOheIm+5vcDRvK28Rexjk230bk/pgzFGPgnR81wsEdejHAPGLQ1Tcr7wQpJCyG/hikfSnzgjJYZ4Pfne1aZp6vav860oSzrUTJOmAEB/IZy5BojKUXDSnreo4+qbSFMtUfh2xPo=,iv:LA+wn+dkgZYa1+eP5TChaAW2+yQVOc0ZCrbuRW54eU0=,tag:u0XiF5Fi0lUAPS02Vis2Ug==,type:str]
pgp:
- created_at: "2024-04-29T17:03:17Z"
- created_at: "2024-12-26T15:24:19Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hF4D/dYBJRlWfQISAQdAG/X828buETcY2yNXRA2dORhwHSfBk25lhTMOesAozk0w
42HQ4ZHV/xc/a9QsfX5pqAZgWbXUGce473RSMfbx3Xd2qnurqhOxyJ41xIQ2U1RX
0l4BQKFt84pgtGHzVdmOsqGzn+kHVxeL9vmsNmC8GGiTGOt/YlLepTwN/0lxl9YC
CtPehgXh1HEjPF6+97KEe/LsIqsEusiBvnz7ieF5bzpt0rhje0mG/yRPpHdE3tzp
=eUa+
hF4D/dYBJRlWfQISAQdAhMxf2ufyvBjHsiYgVmxfyhpVjXIkAWOBPF0V2hTBchIw
ty3hraRX8sRSyH9LBzO33xzsXYQH1XdynPy/xUSvSJ614GhOerDaDB2xKdLKhEaZ
0l4BiT6s981bohkSBzxP6pqQc1EPsiXHt7VWdegq8c4egnluANr5iXcN0xuIb487
HueNPaKXK6ZBF9QP+09tSNP6aAenejleCUHit2oM7afYIOy56UAi5Y3wMpIPy/zB
=d88N
-----END PGP MESSAGE-----
fp: 15D5721F5F5BAF121495363EFE042E3D4085A811
- created_at: "2024-04-29T17:03:17Z"
- created_at: "2024-12-26T15:24:19Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hF4D+EORkHurkvgSAQdAc9l7LbjRnrmSkDnnqyjJgRso3exRZoFeHPvhd5FS3C8w
fa5KZkhoTCx9G19FFMOFksjLlCRVET7iN4/eI51KOuQ2XAj1PfG+fLPMucNtU7xz
0l4Baqj1OkL2vF+u0r1OHpZO3R+8h0N1sMoN/4tgQc58ClNCSrslrUiclZXv1brN
yX+sK8AtlxiBl9f5DIVqA5v+emtHx38OvR3o9iX8JppYuChmnU6a2mHy0cjwEgM/
=xkKE
hF4D+EORkHurkvgSAQdATrXte4QAtZXgF8VY/Kfjqp243m4fj9CpJOf2GKbO+x0w
xmVbY3h0iQogyvkYp3Us09qcYH5FsISkjxxIIIs4YB74kOwW6MvW4+BMfsnJUTzW
0l4BHzdtU4m8JGqXOeP8C2BF0U22xaYGZMPPsextok3GjDNgNec1/4w7liWDehw8
ORJ8z+15TxHyqoUnt4PWer5LOtE12f+MKGmDeOVxep/lSzZxrNycZCSLgaG5Cgdv
=BgJM
-----END PGP MESSAGE-----
fp: CC51116A94490FA6FB3C18EB2401FCAE863A06CA
- created_at: "2024-04-29T17:03:17Z"
- created_at: "2024-12-26T15:24:19Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hF4DCsA/BhMt3V4SAQdAdsc6wpQaH5PxlLbUgJ1AtQQLAfzW8N8u9tMoYUsw9Cww
jfAQCIpFjOCcKn2EfQzb/KXSHHiAFBx0BYF4kEoEnclyytkBtny1O14eZMVp0Ja0
0l4BAEzpCeHkgxS19TghHguj7dmRvwk+C3U/qZR0Yd5F8okK3OyLGxE8SzOCC+Ex
YZ2LiEerDzj7N3SxdzRBtYgpturs0TUlZwbO2jWvb92LrCg+fwZTDf+FXBMKJMgJ
=F891
hF4DCsA/BhMt3V4SAQdAENZRSE5wcxMS36LyYIlyIRj2IZR3gwn6vmpDPwcF3Ckw
4Q7IAwgsSVTYloEq2L1ti6YiSYOIHJ6sQ37zb8MqjpnCwqeF+Ilw2zN6a4uapTDw
0l4BEf2niBLKRnv4gYGAvQlsmDvKxD+XZgCA0Mf4Zo0gTBTNS5TRHaQuH2T+kZwc
fMAy22upXAJErldINHQLctOwG0r45lpqJAHu5BbmDOoyrrvU9oBk253XMgopYWmG
=WlAR
-----END PGP MESSAGE-----
fp: 4919F560F0D35F80CF382D76E084A2DF1143C14D
- created_at: "2024-04-29T17:03:17Z"
- created_at: "2024-12-26T15:24:19Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hQEMAxQwM84t19oOAQgApMfAt5Si/Uo/Mk5VoOXvRXljrdRAkr7NXcRgw7aR99oR
oMp6M6yd6mMej840Vchrd5QPavMd6Pyrepebip50QViXzZKub4uw7ulSXr9Yy0Oa
cuVL7kimrjQE/3RfZfU4sHzoZUioz3lmfD1tVz7dCTxTp/wlJlb/68sZRG6fS/vE
KXjTf4P7IccTb5UWj8XMXcIaFrZ29MiHW/SBVeiYUkJk9gx37hTffz9lFKPx7iAN
MTZrbrqgyo5ZjM/z17j+F4I9M9eXaxld6fysFsuLHGmsZSvOrUSem8Db0gjr6hIi
ryv2tktT3HOuwhtSD9LuSa8Fkht5eOK9xu9E2MZSPtJeASK9n4FBaX+29mdtsW3z
+W7z1+hI/rWA6wVbJr/3h7gn0Z72/AlTcGqMJnITx73cBZTib30oMGtWWZ5dRBGU
TUeLQF8E0j4W7JMC+pDSUI71mMksoD+ihysJ3If96w==
=tZQw
hF4DRbry8yWl6IgSAQdAaWSu41JqARDdez39dRCn2zP7TbiN/S+5yFsQvjohonsw
RGgwTfrUVWy4E67EMx7RN3sVEXtLDBpBobdKOvUTqe6fZ+TSrqyalfDrlMDxaGjj
1GgBCQIQYCBiEZ2BvxY654zbUVkEet2nm41Lg/qQsEqBnXXZT24hX85WUbOyAYct
bR3sQZul9RlBFrkEXSLwBN+tFzidoIiHkHtRRsLZyCGKFfxyguM9He9CevDpggPA
wkKtYzMUzrNfKw==
=8JBm
-----END PGP MESSAGE-----
fp: 966BC282A680D8BB3E8363E865933E76F0549B0D
- created_at: "2024-04-29T17:03:17Z"
fp: 11177A43C6E3752E682AC690DBD13117B0A14E93
- created_at: "2024-12-26T15:24:19Z"
enc: |-
-----BEGIN PGP MESSAGE-----
hF4DzfZC0UNQ1VgSAQdAIOqJfm6hMsqYmTZtTbI1akgjnyMqXpK39iBZNx+HtzEw
DFLS/aioTT3QTndbSCtv4zlh5GqlhfMZrstgWBNhta0g4gxifX9VKWG2PUns4RX3
0l4BO3JwpHIV23X56gt9/H94GtuebNOaoNRLW7WmqpclpLV9Z3gm9Q0FOBeUGCPX
JDYt0QL0rcqIGPAcxEgLcx42vxHtUWfGcYGBugRbKVQ1xiEPZUAZgYAC5WqeKne2
=lE3W
hF4DzfZC0UNQ1VgSAQdAT6ORCIjbdFHRpTcZLEJIniYNWnkgB6kbOTUR7Z4TNyww
YjqSVzt0pRHA0tnLKxC0EE1E9VGTrFjDpg0+yeoOzgS5M2zdl47LM9RMJTnA3cGM
1GgBCQIQNQoVBm+zPbJstZMPWUO7vrgTRxKFREm9RW3y1UP4DO4MmMr1F6yJyN/Z
0xZraVpL4YAj5FFnf9YkrPlTbiJsClO20k30rK79IEuXGkxTvLk4R0p8bbG1ps4D
HaTBqg+N24qQ8w==
=x4Lm
-----END PGP MESSAGE-----
fp: AA5213AF261C1977AF38B03A94B473337258BFD5
unencrypted_suffix: _unencrypted
version: 3.9.0
version: 3.9.2

View File

@ -1,6 +1,6 @@
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
#
# Generated on 2024-04-29T16:25:51Z by kres ebc009d-dirty.
# Generated on 2024-12-26T15:20:08Z by kres fcff05e.
creation_rules:
- age: age1xrpa9ujxxcj2u2gzfrzv8mxak4rts94a6y60ypurv6rs5cpr4e4sg95f0k
@ -9,5 +9,5 @@ creation_rules:
15D5721F5F5BAF121495363EFE042E3D4085A811,
CC51116A94490FA6FB3C18EB2401FCAE863A06CA,
4919F560F0D35F80CF382D76E084A2DF1143C14D,
966BC282A680D8BB3E8363E865933E76F0549B0D,
11177A43C6E3752E682AC690DBD13117B0A14E93,
AA5213AF261C1977AF38B03A94B473337258BFD5

View File

@ -1,143 +0,0 @@
#!/usr/bin/env bash
set -eou pipefail
source ./hack/test/e2e.sh
export AWS_DEFAULT_REGION="us-east-1"
export BUCKET_NAME="talos-ci-e2e"
export EQUINIX_METRO="dc"
TEMP_DIR=$(mktemp -d)
INSTALLER_IMAGE_NAME=$(cut -d ":" -f1 <<< "${INSTALLER_IMAGE}")
INSTALLER_IMAGE_TAG=$(cut -d ":" -f2 <<< "${INSTALLER_IMAGE}")
rm -rf "${ARTIFACTS}/v2"
function cleanup() {
rm -rf "${TEMP_DIR}"
}
trap cleanup SIGINT EXIT
function generate_ipxe_script() {
CONSOLE="console=ttyS1,115200n8"
[[ "${1}" == "arm64" ]] && CONSOLE="console=ttyAMA0,115200"
cat > "${ARTIFACTS}/ipxe-${1}" << EOF
#!ipxe
kernel https://${BUCKET_NAME}.s3.amazonaws.com/vmlinuz-${1} talos.platform=equinixMetal console=tty0 ${CONSOLE} init_on_alloc=1 slab_nomerge pti=on consoleblank=0 nvme_core.io_timeout=4294967295 printk.devkmsg=on ima_template=ima-ng ima_appraise=fix ima_hash=sha512
initrd https://${BUCKET_NAME}.s3.amazonaws.com/initramfs-${1}.xz
boot
EOF
}
function upload_artifact() {
aws s3 cp --acl public-read "${ARTIFACTS}/${1}" "s3://${BUCKET_NAME}/${1}"
}
shamove() {
SHA=$(sha256sum "${1}" | cut -d " " -f1)
mv "${1}" "${ARTIFACTS}/v2/${INSTALLER_IMAGE_NAME}/${2}/sha256:${SHA}"
}
# adapted from https://github.com/jpetazzo/registrish/
function generate_oci() {
crane pull --format=oci "${INSTALLER_IMAGE}" "${TEMP_DIR}/${INSTALLER_IMAGE_NAME}"
mkdir -p "${ARTIFACTS}/v2/${INSTALLER_IMAGE_NAME}/manifests" "${ARTIFACTS}/v2/${INSTALLER_IMAGE_NAME}/blobs"
find "${TEMP_DIR}/${INSTALLER_IMAGE_NAME}/blobs" -type f | while read -r FILE; do
# gzip files are blobs
if gzip -t "${FILE}"; then
shamove "${FILE}" blobs
else
# json files with architecture are blobs
if [[ $(jq 'select(.architecture != null)' "${FILE}") != "" ]]; then
shamove "${FILE}" blobs
continue
fi
# copying over the index file as tag
[[ $(jq '.mediaType=="application/vnd.oci.image.index.v1+json"' "${FILE}") == "true" ]] && cp "${FILE}" "${ARTIFACTS}/v2/${INSTALLER_IMAGE_NAME}/manifests/${INSTALLER_IMAGE_TAG}"
# anything else is other manifests referenced by the index
shamove "${FILE}" manifests
fi
done
}
# adapted from https://github.com/jpetazzo/registrish/
function upload_oci() {
# remove any existing container image data
aws s3 rm "s3://${BUCKET_NAME}/v2/" --recursive
aws s3 sync "${ARTIFACTS}/v2/" \
"s3://${BUCKET_NAME}/v2/" \
--acl public-read \
--exclude '*/manifests/*'
find "${ARTIFACTS}/v2/" -path '*/manifests/*' -print0 | while IFS= read -r -d '' MANIFEST; do
CONTENT_TYPE=$(jq -r .mediaType < "${MANIFEST}")
if [ "$CONTENT_TYPE" = "null" ]; then
CONTENT_TYPE="application/vnd.docker.distribution.manifest.v1+prettyjws"
fi
aws s3 cp "${MANIFEST}" \
"s3://${BUCKET_NAME}/${MANIFEST/${ARTIFACTS}\//}" \
--acl public-read \
--content-type "${CONTENT_TYPE}" \
--metadata-directive REPLACE
done
}
# generate ipxe script for both amd64 and arm64
generate_ipxe_script "amd64"
generate_ipxe_script "arm64"
upload_artifact "ipxe-amd64"
upload_artifact "ipxe-arm64"
upload_artifact vmlinuz-amd64
upload_artifact initramfs-amd64.xz
upload_artifact vmlinuz-arm64
upload_artifact initramfs-arm64.xz
generate_oci
upload_oci
mkdir -p "${ARTIFACTS}/e2e-equinix-metal-generated"
NAME_PREFIX="talos-e2e-${SHA}-equinix-metal"
jq --null-input \
--arg CLUSTER_NAME "${NAME_PREFIX}" \
--arg EM_API_TOKEN "${EM_API_TOKEN}" \
--arg EM_PROJECT_ID "${EM_PROJECT_ID}" \
--arg TALOS_VERSION_CONTRACT "${TALOS_VERSION}" \
--arg KUBERNETES_VERSION "${KUBERNETES_VERSION}" \
--arg EM_REGION "${EQUINIX_METRO}" \
--arg INSTALL_IMAGE "${BUCKET_NAME}.s3.amazonaws.com/${INSTALLER_IMAGE_NAME}:${INSTALLER_IMAGE_TAG}" \
--arg IPXE_SCRIPT_URL_AMD64 "https://${BUCKET_NAME}.s3.amazonaws.com/ipxe-amd64" \
--arg IPXE_SCRIPT_URL_ARM64 "https://${BUCKET_NAME}.s3.amazonaws.com/ipxe-arm64" \
'{
cluster_name: $CLUSTER_NAME,
em_api_token: $EM_API_TOKEN,
em_project_id: $EM_PROJECT_ID,
talos_version_contract: $TALOS_VERSION_CONTRACT,
kubernetes_version: $KUBERNETES_VERSION,
em_region: $EM_REGION,
ipxe_script_url_amd64: $IPXE_SCRIPT_URL_AMD64,
ipxe_script_url_arm64: $IPXE_SCRIPT_URL_ARM64,
install_image: $INSTALL_IMAGE
}' \
| jq -f hack/test/tfvars/equinix-metal.jq > "${ARTIFACTS}/e2e-equinix-metal-generated/vars.json"
cp hack/test/tfvars/*.yaml "${ARTIFACTS}/e2e-equinix-metal-generated"

View File

@ -1,15 +0,0 @@
#!/usr/bin/env bash
set -eou pipefail
source ./hack/test/e2e.sh
cp "${ARTIFACTS}/e2e-equinix-metal-talosconfig" "${TALOSCONFIG}"
cp "${ARTIFACTS}/e2e-equinix-metal-kubeconfig" "${KUBECONFIG}"
# set the talosconfig to use the first controlplane ip
CONTROLPLANE0_NODE=$(${TALOSCTL} config info -o json | jq -r '.endpoints[0]')
${TALOSCTL} config node "${CONTROLPLANE0_NODE}"
run_talos_integration_test
run_kubernetes_integration_test

View File

@ -1,3 +0,0 @@
machine:
install:
disk: /dev/nvme0n1

View File

@ -1,38 +0,0 @@
{
"cluster_name": .cluster_name,
"em_api_token": .em_api_token,
"talos_version_contract": .talos_version_contract,
"kubernetes_version": .kubernetes_version,
"em_region": .em_region,
"em_project_id": .em_project_id,
"control_plane": {
"num_instances": 3,
"plan": "c3.small.x86",
"ipxe_script_url": .ipxe_script_url_amd64,
"install_image": .install_image
},
"worker_groups": [
{
"name": "amd64",
"num_instances": 1,
"plan": "c3.small.x86",
"ipxe_script_url": .ipxe_script_url_amd64,
"install_image": .install_image
},
{
"name": "arm64",
"plan": "c3.large.arm64",
"num_instances": 1,
"ipxe_script_url": .ipxe_script_url_arm64,
"install_image": .install_image,
"config_patch_files": [
"equinix-arm64.yaml"
]
}
],
"extra_tags": [
"Cluster Name=" + .cluster_name,
"Project=talos-e2e-ci",
"Environment=ci"
]
}