Skip to content

Conversation

@chucklever
Copy link
Contributor

Pull in several recent fixes to terraform-related issues reported by mcgrof.

chucklever and others added 7 commits December 14, 2025 13:27
When I start claude, it warns:

  ⚠Large CLAUDE.md will impact performance (53.1k chars > 40.0k)

When asked for specifics, claude responded:

> 1. Context usage: The entire file is loaded into every
>    conversation, consuming context window. At ~52KB, it's
>    substantial but manageable with modern context windows.
> 2. Signal-to-noise ratio: The file contains valuable project-
>    specific guidance (Kconfig patterns, A/B testing, variable
>    scope issues, commit conventions). However, some sections
>    are quite detailed - like the multi-page examples for variable
>    scope debugging.
> 3. Redundancy: Some patterns are explained multiple times (e.g.,
>    the CLI override pattern appears in several places with similar
>    examples).

It should be straightforward to restore portions of the file if
misbehavior occurs, or just revert this patch.

Generated-by: Claude AI
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
SSH keys now use directory-based checksums to support multiple kdevops
installations coexisting without conflicts. The SSH key filename format
is now ~/.ssh/kdevops_terraform_<checksum> where checksum is the first
8 characters of the SHA256 hash of the kdevops directory path.

This was previously only applied to Lambda Labs provider but is now the
default for all providers, as it solves the general problem of multiple
installations sharing the same home directory.

Generated-by: Claude AI
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
ssh key file name with a SHA-256 hash was previously only applied to
the Lambda Labs provider but is now the default for all providers.
This presents a migration hazard for users of non-Lambda providers.

A migration check now runs during the "make" step to notify users
with existing keys at the old path. Users with running VMs can
migrate their keys using the provided commands; otherwise new keys
are generated automatically.

Generated-by: Claude AI
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Add require_oci_config() to oci_common.py which validates OCI
configuration via the SDK early in script execution. When OCI is not
configured, the scripts exit gracefully with success rather than
failing with errors. This allows users without OCI accounts to run
make dynconfig without issues.

This approach centralizes the handling and avoids TOCTOU race
conditions from manual file existence checks. The SDK also validates
the config file format, not just its existence.

Generated-by: Claude AI
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Add require_aws_credentials() to aws_common.py which validates AWS
credentials via the STS API early in script execution. When AWS is not
configured, the scripts exit gracefully with success rather than
failing with errors. This allows users without AWS accounts to run
make dynconfig without issues.

This approach centralizes the handling and avoids TOCTOU race
conditions from manual file existence checks. The STS API also
validates the credentials work, not just that config files exist.

Generated-by: Claude AI
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Add require_azure_credentials() to azure_common.py which validates Azure
credentials via the Azure CLI profile early in script execution. When
Azure is not configured, the scripts exit gracefully with success rather
than failing with errors. This allows users without Azure accounts to
run make dynconfig without issues.

This approach mirrors the AWS implementation and centralizes the handling
of missing Azure credentials while avoiding TOCTOU race conditions from
manual file existence checks. The Azure CLI profile API validates that
credentials are functional, not just that config files exist.

Generated-by: Claude AI
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Terraform providers are platform-specific binaries installed to paths
that include the operating system and architecture:

  ~/.terraform.d/plugins/registry.terraform.io/<namespace>/<name>/<ver>/<os>_<arch>/

The DataCrunch provider integration uses ansible_system and
ansible_architecture to construct this path dynamically, allowing
the same playbook to work on Linux x86_64, Linux ARM64, macOS, etc.

These variables are Ansible facts populated by the setup module during
fact gathering. With gather_facts disabled, these variables are
undefined and the playbook fails when attempting to install or locate
the DataCrunch terraform provider.

Remove the gather_facts: false directive so Ansible collects system
facts before the terraform role executes.

Generated-by: Claude AI
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
@chucklever chucklever merged commit 3c0a0fb into main Dec 15, 2025
22 checks passed
@chucklever chucklever deleted the cel/terraform-fixes branch December 15, 2025 14:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants