Skip to content

feat(ibmcloud): add IBM COS S3-compatible backend support#1

Draft
deekay2310 wants to merge 6 commits into
adrianriobo:fix-471from
deekay2310:AIPCC-13797
Draft

feat(ibmcloud): add IBM COS S3-compatible backend support#1
deekay2310 wants to merge 6 commits into
adrianriobo:fix-471from
deekay2310:AIPCC-13797

Conversation

@deekay2310
Copy link
Copy Markdown

Introduce IBM_COS_* env vars (access key, secret, endpoint, region) and remap them to AWS SDK env vars in Init() so the Pulumi S3 backend can authenticate to IBM Cloud Object Storage without conflicting with AWS credentials. Add DestroyStack with lock cleanup, CleanupState for post- destroy state removal, and --keep-state flag to ibm-power/ibm-z destroy commands.

@adrianriobo adrianriobo force-pushed the fix-471 branch 4 times, most recently from 8a00a69 to f8306e7 Compare May 18, 2026 15:06
jangel97 and others added 6 commits May 19, 2026 18:22
Operators may pre-create namespaces during startup, causing Pulumi
NewNamespace to fail with already exists. Switch all profile namespace
creation to NewNamespacePatch (SSA) which handles both cases and extract
a shared newNamespace helper to reduce duplication.
Previously we set the delete of any resource deployed on top of SNC as deleted with the underlaying infra, but even in that case during destroy pulumi was trying to reach the SNC api to check the state for resources, and when it is unrechable it was failing the whole destroy operation, we are now forcing the DeleteUnrechable to true, so it bypass it even if it can not reach the cluster to check the state. Fixes redhat-developer#809

Signed-off-by: Adrian Riobo <ariobolo@redhat.com>
…on and cloud-init networking

Adds full IBM Power VS (ppc64) support including:

- Provision a PowerVS instance on an existing private subnet inside a
  Transit Gateway workspace using an s1022 (Power10) frame with RHEL 9
- Optional VPC bastion: when --vpc-public-subnet-id is set, a small
  cx2-2x4 Ubuntu 24.04 VPC instance with a floating IP is created in
  the given subnet as an SSH jump host to reach the private PowerVS
  instance over the Transit Gateway network
- Cloud-init user data that adds a persistent 10.0.0.0/8 on-prem route
  via the subnet gateway (resolved at deploy time via LookupPiNetwork)
  and dynamically discovers the correct interface name at boot; DNS
  resolvers are picked up from the subnet configuration via DHCP

New flags on `mapt ibmcloud host ibm-power create`:
  --pi-private-subnet-id   ID of the existing PowerVS private subnet
  --workspace-id           ID of the existing PowerVS workspace
  --vpc-public-subnet-id   (optional) VPC subnet for the SSH bastion

Output files written to --conn-details-output:
  host, username, id_rsa (PowerVS instance)
  bastion_host, bastion_username, bastion_id_rsa (when bastion is used)

Updates ibm-power and ibm-z docs with current flags, env vars,
SSH access samples, and destroy examples. Fixes broken ibm-power
link in README.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…d IBM Z

Installs and configures the OpenTelemetry Collector contrib distribution
on both IBM Power (ppc64le) and IBM Z (s390x) instances when --otel-app-code,
--otel-auth-token, and --otel-index are all provided.

Collector configuration:
- Three filelog receivers: syslog, secure/auth, and audit logs
- Operators: move log.file.path to _sourceName, remove log.file.name,
  timestamp parsing for syslog/secure receivers
- Splunk routing attributes per receiver: index, _sourceCategory, _sourceHost
- Resource processor: appcode, arch (hardcoded per platform), auth token,
  and optional extra attributes via --otel-extra-attrs
- Auth token isolated in a 0600 EnvironmentFile; config.yaml is 0640
- IBM Z user_data wrapped in MIME multipart for cloud-init compatibility

Other fixes folded in:
- Remove deprecated otelcol metrics.address field
- Remove redhat.com from NO_PROXY
- Harden waitForInstance: return error on timeout, use mCtx.Context()
  for cancellation, replace fmt.Println with logging.Infof
- Extract shared NewSecurityGroupWithSSH and NewFloatingIP helpers into
  the network package; remove unused constants package
- Fix SA4004 staticcheck: replace unconditionally-terminated loop in
  power.New() with explicit empty-check and index access

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Introduce IBM_COS_* env vars (access key, secret, endpoint, region) and
remap them to AWS SDK env vars in Init() so the Pulumi S3 backend can
authenticate to IBM Cloud Object Storage without conflicting with AWS
credentials. Add DestroyStack with lock cleanup, CleanupState for post-
destroy state removal, and --keep-state flag to ibm-power/ibm-z destroy
commands.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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