refactor(e2e): use helm install instead of kubectl apply for cozystack installation
Replace pre-rendered static YAML application with direct helm chart installation in e2e tests. The chart directory with correct values is already present in the sandbox after pr.patch application. - Remove CRD/operator artifact upload/download from CI workflow - Remove copy-installer-manifest target from testing Makefile - Use helm upgrade --install from local chart in e2e-install-cozystack.bats Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Aleksei Sviridkin <f@lex.la>
This commit is contained in:
parent
39b95107a5
commit
153d2c48ae
3 changed files with 14 additions and 59 deletions
40
.github/workflows/pull-requests.yaml
vendored
40
.github/workflows/pull-requests.yaml
vendored
|
|
@ -71,18 +71,6 @@ jobs:
|
|||
name: pr-patch
|
||||
path: _out/assets/pr.patch
|
||||
|
||||
- name: Upload CRDs
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: cozystack-crds
|
||||
path: _out/assets/cozystack-crds.yaml
|
||||
|
||||
- name: Upload operator
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: cozystack-operator
|
||||
path: _out/assets/cozystack-operator-talos.yaml
|
||||
|
||||
- name: Upload Talos image
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
|
|
@ -94,8 +82,6 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
if: contains(github.event.pull_request.labels.*.name, 'release')
|
||||
outputs:
|
||||
crds_id: ${{ steps.fetch_assets.outputs.crds_id }}
|
||||
operator_id: ${{ steps.fetch_assets.outputs.operator_id }}
|
||||
disk_id: ${{ steps.fetch_assets.outputs.disk_id }}
|
||||
|
||||
steps:
|
||||
|
|
@ -139,15 +125,11 @@ jobs:
|
|||
return;
|
||||
}
|
||||
const find = (n) => draft.assets.find(a => a.name === n)?.id;
|
||||
const crdsId = find('cozystack-crds.yaml');
|
||||
const operatorId = find('cozystack-operator-talos.yaml');
|
||||
const diskId = find('nocloud-amd64.raw.xz');
|
||||
if (!crdsId || !operatorId || !diskId) {
|
||||
if (!diskId) {
|
||||
core.setFailed('Required assets missing in draft release');
|
||||
return;
|
||||
}
|
||||
core.setOutput('crds_id', crdsId);
|
||||
core.setOutput('operator_id', operatorId);
|
||||
core.setOutput('disk_id', diskId);
|
||||
|
||||
|
||||
|
|
@ -174,20 +156,6 @@ jobs:
|
|||
name: talos-image
|
||||
path: _out/assets
|
||||
|
||||
- name: "Download CRDs (regular PR)"
|
||||
if: "!contains(github.event.pull_request.labels.*.name, 'release')"
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: cozystack-crds
|
||||
path: _out/assets
|
||||
|
||||
- name: "Download operator (regular PR)"
|
||||
if: "!contains(github.event.pull_request.labels.*.name, 'release')"
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: cozystack-operator
|
||||
path: _out/assets
|
||||
|
||||
- name: Download PR patch
|
||||
if: "!contains(github.event.pull_request.labels.*.name, 'release')"
|
||||
uses: actions/download-artifact@v4
|
||||
|
|
@ -208,12 +176,6 @@ jobs:
|
|||
curl -sSL -H "Authorization: token ${GH_PAT}" -H "Accept: application/octet-stream" \
|
||||
-o _out/assets/nocloud-amd64.raw.xz \
|
||||
"https://api.github.com/repos/${GITHUB_REPOSITORY}/releases/assets/${{ needs.resolve_assets.outputs.disk_id }}"
|
||||
curl -sSL -H "Authorization: token ${GH_PAT}" -H "Accept: application/octet-stream" \
|
||||
-o _out/assets/cozystack-crds.yaml \
|
||||
"https://api.github.com/repos/${GITHUB_REPOSITORY}/releases/assets/${{ needs.resolve_assets.outputs.crds_id }}"
|
||||
curl -sSL -H "Authorization: token ${GH_PAT}" -H "Accept: application/octet-stream" \
|
||||
-o _out/assets/cozystack-operator-talos.yaml \
|
||||
"https://api.github.com/repos/${GITHUB_REPOSITORY}/releases/assets/${{ needs.resolve_assets.outputs.operator_id }}"
|
||||
env:
|
||||
GH_PAT: ${{ secrets.GH_PAT }}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,25 +1,22 @@
|
|||
#!/usr/bin/env bats
|
||||
|
||||
@test "Required installer assets exist" {
|
||||
if [ ! -f _out/assets/cozystack-crds.yaml ]; then
|
||||
echo "Missing: _out/assets/cozystack-crds.yaml" >&2
|
||||
exit 1
|
||||
fi
|
||||
if [ ! -f _out/assets/cozystack-operator-talos.yaml ]; then
|
||||
echo "Missing: _out/assets/cozystack-operator-talos.yaml" >&2
|
||||
@test "Required installer chart exists" {
|
||||
if [ ! -f packages/core/installer/Chart.yaml ]; then
|
||||
echo "Missing: packages/core/installer/Chart.yaml" >&2
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
@test "Install Cozystack" {
|
||||
# Create namespace
|
||||
kubectl create namespace cozy-system --dry-run=client -o yaml | kubectl apply -f -
|
||||
# Install cozy-installer chart
|
||||
helm upgrade installer packages/core/installer \
|
||||
--install \
|
||||
--namespace cozy-system \
|
||||
--create-namespace \
|
||||
--wait \
|
||||
--timeout 2m
|
||||
|
||||
# Apply installer manifests (CRDs + operator)
|
||||
kubectl apply -f _out/assets/cozystack-crds.yaml
|
||||
kubectl apply -f _out/assets/cozystack-operator-talos.yaml
|
||||
|
||||
# Wait for the operator deployment to become available
|
||||
# Verify the operator deployment is available
|
||||
kubectl wait deployment/cozystack-operator -n cozy-system --timeout=1m --for=condition=Available
|
||||
|
||||
# Create platform Package with isp-full variant
|
||||
|
|
|
|||
|
|
@ -30,17 +30,13 @@ test: test-cluster test-openapi test-apps ## Run the end-to-end tests in existin
|
|||
copy-nocloud-image:
|
||||
docker cp ../../../_out/assets/nocloud-amd64.raw.xz "${SANDBOX_NAME}":/workspace/_out/assets/nocloud-amd64.raw.xz
|
||||
|
||||
copy-installer-manifest:
|
||||
docker cp ../../../_out/assets/cozystack-crds.yaml "${SANDBOX_NAME}":/workspace/_out/assets/cozystack-crds.yaml
|
||||
docker cp ../../../_out/assets/cozystack-operator-talos.yaml "${SANDBOX_NAME}":/workspace/_out/assets/cozystack-operator-talos.yaml
|
||||
|
||||
prepare-cluster: copy-nocloud-image
|
||||
docker exec "${SANDBOX_NAME}" sh -c 'cd /workspace && hack/cozytest.sh hack/e2e-prepare-cluster.bats'
|
||||
|
||||
install-cozystack: copy-installer-manifest
|
||||
install-cozystack:
|
||||
docker exec "${SANDBOX_NAME}" sh -c 'cd /workspace && hack/cozytest.sh hack/e2e-install-cozystack.bats'
|
||||
|
||||
test-cluster: copy-nocloud-image copy-installer-manifest ## Run the end-to-end for creating a cluster
|
||||
test-cluster: copy-nocloud-image ## Run the end-to-end for creating a cluster
|
||||
docker exec "${SANDBOX_NAME}" sh -c 'cd /workspace && hack/cozytest.sh hack/e2e-cluster.bats'
|
||||
|
||||
test-openapi:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue