Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider publishing arm 64 pulumi-kubernetes-operator images #430

Open
phillipedwards opened this issue Mar 31, 2023 · 7 comments
Open

Consider publishing arm 64 pulumi-kubernetes-operator images #430

phillipedwards opened this issue Mar 31, 2023 · 7 comments
Assignees
Labels
impact/usability Something that impacts users' ability to use the product easily and intuitively kind/enhancement Improvements or new features

Comments

@phillipedwards
Copy link
Contributor

Hello!

  • Vote on this issue by adding a 👍 reaction
  • If you want to implement this feature, comment to let us know (we'll work with you on design, scheduling, etc.)

Issue details

Consider publishing arm 64 pulumi-kubernetes-operator images

Affected area/feature

@phillipedwards phillipedwards added kind/enhancement Improvements or new features needs-triage Needs attention from the triage team labels Mar 31, 2023
@rquitales rquitales removed the needs-triage Needs attention from the triage team label Apr 1, 2023
@rquitales rquitales self-assigned this Apr 1, 2023
@rquitales
Copy link
Member

Note: we'll also need to verify that these images run as expected on ARM nodes.

@kpitzen kpitzen added impact/usability Something that impacts users' ability to use the product easily and intuitively good-first-issue Start here if you'd like to start contributing to Pulumi labels Apr 3, 2023
@rquitales
Copy link
Member

Upon further testing, this requires upstream changes to pulumi/pulumi-docker-containers to ensure that certain binaries work as expected.

I've pushed an alpha build of this image that could be used for verification and testing, and can be used with the following image tag: pulumi/pulumi-kubernetes-operator:v1.11.5-arm64-alpha.

@devantler
Copy link

Any news? 👀 Its been a year since this issue last saw activity.

@EronWright
Copy link
Contributor

EronWright commented Oct 29, 2024

Update: in 2.x, we now do publish an arm64 build of the operator image (link). However, one still needs to have an arm64 build of the "kitchen-sink" pulumi image (see pulumi/pulumi-docker-containers#297). While we do have arm64 builds of the language-specific images, we don't use them by default.

Also, we don't have "non-root" variants of the language-specific images (see pulumi/pulumi-docker-containers#308).

@EronWright EronWright removed the good-first-issue Start here if you'd like to start contributing to Pulumi label Oct 29, 2024
@project0
Copy link

I just faced this problem within a ARM cluster:

Failed to pull image "pulumi/pulumi:latest-nonroot": rpc error: code = NotFound desc = failed to pull and unpack image "docker.io/pulumi/pulumi:latest-nonroot": no match for platform in manifest: not found

@project0
Copy link

I think for most use cases (with the program CRD) adding a image with the yaml-language provider (multi-arch) would be sufficient to enable support.
Would it make sense to add a new image to https://github.com/pulumi/pulumi-docker-container

For everyone else who just wants to get it running with arm64, here is a workaround with workspace template to get the yaml language provider (and therefore the native Program) running:

apiVersion: pulumi.com/v1
kind: Stack
metadata:
  name: example-stack
spec:
  serviceAccountName: pulumi-workspace
  config: {}
  envRefs: {}
  destroyOnFinalize: true
  programRef:
    name: program
  stack: "my-stack"
  workspaceTemplate:
    spec:
      image: pulumi/pulumi-go:latest
      securityProfile: baseline
      podTemplate:
        spec:
          volumes:
            - name: custom-providers
              emptyDir: {}
          initContainers:
            - name: install-yaml
              image: alpine:latest
              command: ["/bin/sh", "-c"]
              args:
                - arch=$(uname -m);
                  if [ "$arch" = "x86_64" ]; then arch="amd64"; fi;
                  if [ "$arch" = "aarch64" ]; then arch="arm64"; fi;
                  echo "Installing YAML Provider... ${arch}";
                  wget https://github.com/pulumi/pulumi-yaml/releases/download/v1.13.0/pulumi-language-yaml-v1.13.0-linux-${arch}.tar.gz -O - | tar -xz -C /custom-providers -f -;
                  echo "Done.";
              volumeMounts:
                - mountPath: /custom-providers
                  name: custom-providers
          containers:
            - name: pulumi
              volumeMounts:
                - mountPath: /pulumi/bin/pulumi-language-yaml
                  name: custom-providers
                  subPath: pulumi-language-yaml

@EronWright
Copy link
Contributor

Thanks @project0 for the clever workaround.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
impact/usability Something that impacts users' ability to use the product easily and intuitively kind/enhancement Improvements or new features
Projects
None yet
Development

No branches or pull requests

6 participants