wolfi-dev / wolfi-dev/tools

Some Alpine-based packages must be locked when building with terraform

Open
#33 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
HCL
Stars
28
Forks
25
Avg merge
4d 31m
Merged PRs (30d)
6

Description

With the following config (alpine-base):

contents:
  packages:
    - alpine-baselayout-data
    - alpine-release
    - apk-tools
    - busybox
    - libc-utils

on terraform apply, we get the following obscure error:

╷
│ Warning: unable to lock certain packages
│ 
│   with module.latest.module.this.data.apko_config.this,
│   on .terraform/modules/latest.this/main.tf line 17, in data "apko_config" "this":
│   17: data "apko_config" "this" {
│ 
│ [alpine-release]
╵
╷
│ Warning: unable to lock certain packages for 386
│ 
│   with module.latest.module.this.data.apko_config.this,
│   on .terraform/modules/latest.this/main.tf line 17, in data "apko_config" "this":
│   17: data "apko_config" "this" {
│ 
│ [libcrypto3 libssl3 musl musl-utils]
╵
╷
│ Warning: unable to lock certain packages for amd64
│ 
│   with module.latest.module.this.data.apko_config.this,
│   on .terraform/modules/latest.this/main.tf line 17, in data "apko_config" "this":
│   17: data "apko_config" "this" {
│ 
│ [libcrypto3 libssl3 musl musl-utils]
╵
╷
│ Warning: unable to lock certain packages for arm/v6
│ 
│   with module.latest.module.this.data.apko_config.this,
│   on .terraform/modules/latest.this/main.tf line 17, in data "apko_config" "this":
│   17: data "apko_config" "this" {
│ 
│ [libcrypto3 libssl3 musl musl-utils]
╵
╷
│ Warning: unable to lock certain packages for arm/v7
│ 
│   with module.latest.module.this.data.apko_config.this,
│   on .terraform/modules/latest.this/main.tf line 17, in data "apko_config" "this":
│   17: data "apko_config" "this" {
│ 
│ [libcrypto3 libssl3 musl musl-utils]
╵
╷
│ Warning: unable to lock certain packages for arm64
│ 
│   with module.latest.module.this.data.apko_config.this,
│   on .terraform/modules/latest.this/main.tf line 17, in data "apko_config" "this":
│   17: data "apko_config" "this" {
│ 
│ [libcrypto3 libssl3 musl musl-utils]
╵
╷
│ Warning: unable to lock certain packages for ppc64le
│ 
│   with module.latest.module.this.data.apko_config.this,
│   on .terraform/modules/latest.this/main.tf line 17, in data "apko_config" "this":
│   17: data "apko_config" "this" {
│ 
│ [libcrypto3 libssl3 musl musl-utils]
╵
╷
│ Warning: unable to lock certain packages for riscv64
│ 
│   with module.latest.module.this.data.apko_config.this,
│   on .terraform/modules/latest.this/main.tf line 17, in data "apko_config" "this":
│   17: data "apko_config" "this" {
│ 
│ [libcrypto3 libssl3 musl musl-utils]
╵
╷
│ Warning: unable to lock certain packages for s390x
│ 
│   with module.latest.module.this.data.apko_config.this,
│   on .terraform/modules/latest.this/main.tf line 17, in data "apko_config" "this":
│   17: data "apko_config" "this" {
│ 
│ [libcrypto3 libssl3 musl musl-utils]
╵
╷
│ Error: Invalid index
│ 
│   on .terraform/modules/latest.this/main.tf line 72, in resource "cosign_attest" "slsa-provenance":
│   72:         for k in data.apko_config.this.config.contents.packages : split("=", k)[0] => split("=", k)[1]
│ 
│ The given key does not identify an element in this collection value: the given index is greater than or equal to the length of the
│ collection.
╵
╷
│ Error: Invalid index
│ 
│   on .terraform/modules/latest.this/main.tf line 72, in resource "cosign_attest" "slsa-provenance":
│   72:         for k in data.apko_config.this.config.contents.packages : split("=", k)[0] => split("=", k)[1]
│ 
│ The given key does not identify an element in this collection value: the given index is greater than or equal to the length of the
│ collection.
╵
╷
│ Error: Invalid index
│ 
│   on .terraform/modules/latest.this/main.tf line 72, in resource "cosign_attest" "slsa-provenance":
│   72:         for k in data.apko_config.this.config.contents.packages : split("=", k)[0] => split("=", k)[1]
│ 
│ The given key does not identify an element in this collection value: the given index is greater than or equal to the length of the
│ collection.
╵
╷
│ Error: Invalid index
│ 
│   on .terraform/modules/latest.this/main.tf line 72, in resource "cosign_attest" "slsa-provenance":
│   72:         for k in data.apko_config.this.config.contents.packages : split("=", k)[0] => split("=", k)[1]
│ 
│ The given key does not identify an element in this collection value: the given index is greater than or equal to the length of the
│ collection.
╵
╷
│ Error: Invalid index
│ 
│   on .terraform/modules/latest.this/main.tf line 72, in resource "cosign_attest" "slsa-provenance":
│   72:         for k in data.apko_config.this.config.contents.packages : split("=", k)[0] => split("=", k)[1]
│ 
│ The given key does not identify an element in this collection value: the given index is greater than or equal to the length of the
│ collection.
╵
╷
│ Error: Invalid index
│ 
│   on .terraform/modules/latest.this/main.tf line 72, in resource "cosign_attest" "slsa-provenance":
│   72:         for k in data.apko_config.this.config.contents.packages : split("=", k)[0] => split("=", k)[1]
│ 
│ The given key does not identify an element in this collection value: the given index is greater than or equal to the length of the
│ collection.
╵
╷
│ Error: Invalid index
│ 
│   on .terraform/modules/latest.this/main.tf line 72, in resource "cosign_attest" "slsa-provenance":
│   72:         for k in data.apko_config.this.config.contents.packages : split("=", k)[0] => split("=", k)[1]
│ 
│ The given key does not identify an element in this collection value: the given index is greater than or equal to the length of the
│ collection.
╵
╷
│ Error: Invalid index
│ 
│   on .terraform/modules/latest.this/main.tf line 72, in resource "cosign_attest" "slsa-provenance":
│   72:         for k in data.apko_config.this.config.contents.packages : split("=", k)[0] => split("=", k)[1]
│ 
│ The given key does not identify an element in this collection value: the given index is greater than or equal to the length of the
│ collection.
╵
╷
│ Error: Invalid index
│ 
│   on .terraform/modules/latest.this/main.tf line 72, in resource "cosign_attest" "slsa-provenance":
│   72:         for k in data.apko_config.this.config.contents.packages : split("=", k)[0] => split("=", k)[1]
│ 
│ The given key does not identify an element in this collection value: the given index is greater than or equal to the length of the
│ collection.
╵

this is resolved by locking the package referred to in the error:

contents:
  packages:
    - alpine-baselayout-data
    - alpine-release==3 # <--------
    - apk-tools
    - busybox
    - libc-utils

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the Alpine package configuration with terraform apply and inspect .terraform/modules/latest.this/main.tf at line 72, where the Invalid index error is reported. Trace how unpinned packages are represented before that expression runs. Done means the configuration completes without the Invalid index errors while retaining package locking behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
terraform
Domain
infrastructure
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.