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

crontabs default example not working on python "pkg_resources.DistributionNotFound" #106

Open
notdodo opened this issue Jan 31, 2023 · 6 comments
Labels
kind/bug Some behavior is incorrect or out of spec

Comments

@notdodo
Copy link

notdodo commented Jan 31, 2023

What happened?

Following the python example to create CRDs inside pulumi during the pulumi up command the following error is returned:

pulumi:pulumi:Stack (pulumi-k8s-pulumi-k8s):
error: Program failed with an unhandled exception:
Traceback (most recent call last):
File "/path/path/pulumi-k8s/./__main__.py", line 42, in <module>
import crontabs.pulumi_crds as crontabs
File "/path/path/pulumi-k8s/./crontabs/pulumi_crds/__init__.py", line 5, in <module>
from . import _utilities
File "/path/path/pulumi-k8s/./crontabs/pulumi_crds/_utilities.py", line 94, in <module>
_version = _get_semver_version()
File "/path/path/pulumi-k8s/./crontabs/pulumi_crds/_utilities.py", line 73, in _get_semver_version
pep440_version_string = pkg_resources.require(root_package)[0].version
File "/path/path/pulumi-k8s/.venv/lib/python3.10/site-packages/pkg_resources/__init__.py", line 909, in require
needed = self.resolve(parse_requirements(requirements))
File "/path/path/pulumi-k8s/.venv/lib/python3.10/site-packages/pkg_resources/__init__.py", line 795, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'crontabs' distribution was not found and is required by the application

Changing the import from import crontabs.pulumi_crds as crontabs to import crontabs as crontabs solve the pkg_resources error but the usage of the module is impacted.

import crontabs as crontabs

# Register the CronTab CRD.
crontab_definition = k8s.yaml.ConfigFile(
    "my-crontab-definition", file="customresources.yaml"
)

# Instantiate a CronTab resource.
crontab_instance = crontabs.stable.v1.CronTab(
    "my-new-cron-object",
    metadata=k8s.meta.v1.ObjectMetaArgs(name="my-new-cron-object"),
    spec=crontabs.stable.v1.CronTabSpecArgs(
        cron_spec="* * * */5",
        image="my-awesome-cron-image",
    ),
)

the error returned is now:

error: Program failed with an unhandled exception:
Traceback (most recent call last):
File "/path/path/pulumi-k8s/./__main__.py", line 50, in <module>
crontab_instance = crontabs.stable.v1.CronTab(
AttributeError: module 'crontabs' has no attribute 'stable'

Expected Behavior

import of the module works and it's usable to create CRDs from python

Steps to reproduce

1- download the yaml for the CRDs for crontabs from the example
2- crd2pulumi --pythonPath ./crontabs customresources.yaml
3- use the module

Output of pulumi about

CLI          
Version      3.53.1
Go Version   go1.19.5
Go Compiler  gc

Plugins
NAME                     VERSION
command                  0.7.1-alpha.1674088865
crds                     0.0.0
kubernetes               3.24.0-alpha.1675102241
kubernetes-cert-manager  0.0.5
python                   unknown

Host     
OS       ubuntu
Version  22.04
Arch     x86_64

Additional context

No response

Contributing

Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

@notdodo notdodo added kind/bug Some behavior is incorrect or out of spec needs-triage Needs attention from the triage team labels Jan 31, 2023
@AaronFriel
Copy link

Hey @notdodo, thanks for the bug report. We're currently determining how to integrate crd2pulumi into our other migration tools. I expect crd2pulumi to be in maintenance mode until we've decided how to do that.

Could you tell me a little more about your use case for crd2pulumi?

In the mean time we'll keep this issue open as it's a valid bug report.

@AaronFriel AaronFriel removed the needs-triage Needs attention from the triage team label Feb 1, 2023
@notdodo
Copy link
Author

notdodo commented Feb 1, 2023

Hi @AaronFriel, the use case is simply to use it to have pulumi CRDs for ECK (https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-deploy-eck.html) instead of manually writing pulumi resources or using yaml files.

@AaronFriel
Copy link

That makes sense, thanks.

@lingxiankong
Copy link

@AaronFriel Hi any update on this please? I'm seeing the same issue, the use case is the same, integrating CRD in the pulumi code using python.

@after-ephemera
Copy link

I'm also running into this issue with python and crd2pulumi

@cleverguy25
Copy link

Added to epic https://github.com/pulumi/home/issues/3431

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Some behavior is incorrect or out of spec
Projects
None yet
Development

No branches or pull requests

5 participants