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

keadm init failed with --profile version=v1.17.0 #5601

Open
Shelley-BaoYue opened this issue May 11, 2024 · 10 comments · May be fixed by #5634
Open

keadm init failed with --profile version=v1.17.0 #5601

Shelley-BaoYue opened this issue May 11, 2024 · 10 comments · May be fixed by #5634
Labels
kind/bug Categorizes issue or PR as related to a bug.

Comments

@Shelley-BaoYue
Copy link
Collaborator

What happened:

When using keadm init --profile version=v1.17.0 to deploy cloudcore, it will failed with error like:

image

What you expected to happen:

deploy cloudcore successfully

How to reproduce it (as minimally and precisely as possible):

execute keadm init --advertise-address=xxx --profile version=v1.17.0

Anything else we need to know?:

Using keadm --kubeedge-version=v1.17.0 can deploy cloudcore successfully

Environment:

  • Kubernetes version (use kubectl version): 1.27

  • KubeEdge version(e.g. cloudcore --version and edgecore --version): cloudcore v1.17.0 keadm version: v1.17.0

  • Cloud nodes Environment:
    • Hardware configuration (e.g. lscpu):
    • OS (e.g. cat /etc/os-release):
    • Kernel (e.g. uname -a):
    • Go version (e.g. go version):
    • Others:
  • Edge nodes Environment:
    • edgecore version (e.g. edgecore --version):
    • Hardware configuration (e.g. lscpu):
    • OS (e.g. cat /etc/os-release):
    • Kernel (e.g. uname -a):
    • Go version (e.g. go version):
    • Others:
@Shelley-BaoYue Shelley-BaoYue added the kind/bug Categorizes issue or PR as related to a bug. label May 11, 2024
@Shelley-BaoYue
Copy link
Collaborator Author

cc @luomengY

@luomengY
Copy link
Member

cc @luomengY

Keam init has restructured its architecture on v1.17, and now only supports internal profiles/version.yaml for profiles. If you want to specify a version, it is recommended to use --kubeedge-version directly. The --profile parameter only supports version.

@Shelley-BaoYue
Copy link
Collaborator Author

The --profile parameter only supports version.
--> but now I cannot using --profile version to specify cloudcore version.

The setup documentation in KubeEdge website still recommend users using --profile version: https://kubeedge.io/docs/setup/install-with-keadm#keadm-init. If we no longer support it, we need to modify the documentation.

I think this change affects user behavior and needs a deprecated phase. Release changelog also should declare it. cc @fisherxu @WillardHu @wbc6080

@WillardHu
Copy link
Collaborator

We can update how to use the command keadm init in the documentation station(website).
We can also add a compatibility processing.

if strings.split(profileValue, "=") == 2 {
    // override the kubeedge version to version.yaml
} else {
    ....
}

But I don't know whether this flag --profile version=<version> is commonly used, it is the same as the flag --kubeedge-version=<version> from a technical point of view.

Would you like to make these contributions? @luomengY

@luomengY
Copy link
Member

luomengY commented May 11, 2024

We can update how to use the command keadm init in the documentation station(website). We can also add a compatibility processing.

if strings.split(profileValue, "=") == 2 {
    // override the kubeedge version to version.yaml
} else {
    ....
}

But I don't know whether this flag --profile version=<version> is commonly used, it is the same as the flag --kubeedge-version=<version> from a technical point of view.

Would you like to make these contributions? @luomengY

Here, the functions of profile and kubedge-version appear to be the same. Is there any other use of profile here? If not, I think it can be directly made compatible in the code by assigning the value of profile to kubedge-version. What do you think? @fisherxu @Shelley-BaoYue @WillardHu

@WillardHu
Copy link
Collaborator

Here, the functions of profile and kubedge-version appear to be the same. Is there any other use of profile here? If not, I think it can be directly made compatible in the code by assigning the value of profile to kubedge-version. What do you think? @fisherxu @Shelley-BaoYue @WillardHu

If this flag --profile version=<version> is not commonly used, I think it is ok.

@Shelley-BaoYue
Copy link
Collaborator Author

CloudCore installation only supports the --profile version initially, and with the guidance of the official website, I think it's commonly used. If we want to incorporate it into kubeedge-version in the future, we need to make a statement in the keadm introduction and website documentation to gradually deprecate it.

@wbc6080
Copy link
Contributor

wbc6080 commented May 11, 2024

CloudCore installation only supports the --profile version initially, and with the guidance of the official website, I think it's commonly used. If we want to incorporate it into kubeedge-version in the future, we need to make a statement in the keadm introduction and website documentation to gradually deprecate it.

+1, I just read the document and found that when the cloud node executes keadm init, --profile version is used, but when the edge node executes keadm join, --kubeedge-version is used. I think whether we can combine the two ways into one expression in the future.

@luomengY
Copy link
Member

CloudCore installation only supports the --profile version initially, and with the guidance of the official website, I think it's commonly used. If we want to incorporate it into kubeedge-version in the future, we need to make a statement in the keadm introduction and website documentation to gradually deprecate it.

ok, can we ensure compatibility at the code level and assign the value of profile to kubedge-version now?

@luomengY
Copy link
Member

I just read the document and found that when the cloud node executes keadm init, --profile version is used, but when the edge node executes keadm join, --kubeedge-version is used. I think whether we can combine the two ways into one expression in the future.

Yes, if there are no other uses for profile, we can gradually discard it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Categorizes issue or PR as related to a bug.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants