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

[WIP]Adapt offline installation #2541

Closed
wants to merge 1 commit into from

Conversation

helen-frank
Copy link
Contributor

Signed-off-by: helen helenfrank@protonmail.com

What type of PR is this?
/kind feature

What this PR does / why we need it:
When you cannot access the external network, you can simply install the karmada by specifying the KubeImageRegistry.
Which issue(s) this PR fixes:
Fixes #

Special notes for your reviewer:

Does this PR introduce a user-facing change?:

When the KubeImageRegistry is specified, the EtcdInitImage will also be changed

Signed-off-by: helen <helenfrank@protonmail.com>
@karmada-bot karmada-bot added the kind/feature Categorizes issue or PR as related to a new feature. label Sep 19, 2022
@karmada-bot
Copy link
Collaborator

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
To complete the pull request process, please assign prodanlabs after the PR has been reviewed.
You can assign the PR to them by writing /assign @prodanlabs in a comment when ready.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@karmada-bot karmada-bot added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label Sep 19, 2022
@RainbowMango
Copy link
Member

When you cannot access the external network, you can simply install the karmada by specifying the KubeImageRegistry.

I don't get it. Without this path, I think people also can get the image from the --kube-image-registry.

@helen-frank
Copy link
Contributor Author

helen-frank commented Sep 20, 2022

When you cannot access the external network, you can simply install the karmada by specifying the KubeImageRegistry.

I don't get it. Without this path, I think people also can get the image from the --kube-image-registry.

What I want to achieve is that since I have specified--kube-image-registry, all image should be in my image registry, but etcd-init-image seems to be an exception.

@helen-frank
Copy link
Contributor Author

helen-frank commented Sep 20, 2022

@RainbowMango In other words, the expected design here is etcd-init-image requires additional designation when the installation environment handles the isolation of the external network.

@RainbowMango
Copy link
Member

I guess you mean let karmadactl get docker.io/alpine:3.15.1 image from kube-image-registry.

My concern is the flag --kube-image-registry is used for kubernetes images, but the docker.io/alpine:3.15.1 not maintains by Kubernetes.
It might be not a good idea to mix them up. On other hand, how about the Karmada images, should they download from a private registry?

@RainbowMango
Copy link
Member

Let me try to understand your case.

  1. you set --kube-image-registry flag to a private or local registry.
  2. since you can't access the external network, you still need to set --etcd-init-image which probably is the same registry as --kube-image-registry

Am I right?

@helen-frank
Copy link
Contributor Author

Let me try to understand your case.

  1. you set --kube-image-registry flag to a private or local registry.
  2. since you can't access the external network, you still need to set --etcd-init-image which probably is the same registry as --kube-image-registry

Am I right?

Yes, I want to find a solution to make it easier for karmada to install in an offline environment. I think the idea of "karmada-image-registry" is feasible.
(I'm very sorry, my English level is relatively poor, which brings you some difficulty in understanding the review. ^_^)

@helen-frank
Copy link
Contributor Author

I have another idea. When image-registry is specified, the default application version in the karmadactl will definitely be installed (for example, kube-apiserver is 1.24.2). Is there any modification plan for karmadactl in this regard? @RainbowMango

@helen-frank
Copy link
Contributor Author

My idea is to add a parameter karmada-image-tag , when you specify --karmada-image-registry, you can specify the installation version.
For example, when my multi-cloud cluster decides on a unified version, I only need to use docker tag & docker push to upload these required images to my image-registry in batches, and karmadactl init --karmada-image-registry=xxx.io -- karmada-image-tag=m1 during installation.
I want to know what you think about this? ^_^ @RainbowMango

@RainbowMango
Copy link
Member

Yes, I want to find a solution to make it easier for karmada to install in an offline environment.

That makes sense to me. You are welcome to talk at the community meeting.
cc @lonelyCZ @prodanlabs for comment

@helen-frank helen-frank changed the title Adapt offline installation [WIP]Adapt offline installation Sep 30, 2022
@karmada-bot karmada-bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Sep 30, 2022
@liangyuanpeng
Copy link
Contributor

liangyuanpeng commented Oct 6, 2022

We have a param of global.imageRegistry on helm chart, is it the same case?

@helen-frank
Copy link
Contributor Author

We have a param of global.imageRegistry on helm chart, is it the same case?

Hi @liangyuanpeng , It looks similar,but I prefer to use a single group to manage karmada images when installing in an offline environmen.

@liangyuanpeng
Copy link
Contributor

For example, when my multi-cloud cluster decides on a unified version, I only need to use docker tag & docker push to upload these required images to my image-registry in batches, and karmadactl init --karmada-image-registry=xxx.io -- karmada-image-tag=m1 during installation.

@helen-frank
Just for confirm that, So it would be manager image for karmada containers?
It include this container:

  • karmada-aggregated-apiserver
  • karmada-controller-manager
  • karmada-scheduler
  • karmada-webhook
  • karmada-search
  • karmada-descheduler
  • karmada-scheduler-estimator

@helen-frank
Copy link
Contributor Author

For example, when my multi-cloud cluster decides on a unified version, I only need to use docker tag & docker push to upload these required images to my image-registry in batches, and karmadactl init --karmada-image-registry=xxx.io -- karmada-image-tag=m1 during installation.

@helen-frank Just for confirm that, So it would be manager image for karmada containers? It include this container:

  • karmada-aggregated-apiserver
  • karmada-controller-manager
  • karmada-scheduler
  • karmada-webhook
  • karmada-search
  • karmada-descheduler
  • karmada-scheduler-estimator

Yes!My idea is to unify the management of the images involved in the karmada and simplify offline installation.

@liangyuanpeng
Copy link
Contributor

SGTM!

@helen-frank
Copy link
Contributor Author

/close

@karmada-bot
Copy link
Collaborator

@helen-frank: Closed this PR.

In response to this:

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. kind/feature Categorizes issue or PR as related to a new feature. size/S Denotes a PR that changes 10-29 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants