support kubeconfig and masterURL parameters (#69)
This commit is contained in:
parent
ce8b52c3b3
commit
0dd358dc2a
|
@ -23,3 +23,15 @@ spec:
|
|||
- name: karmada-controller-manager
|
||||
image: swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-controller-manager:latest
|
||||
imagePullPolicy: Always
|
||||
command:
|
||||
- /bin/karmada-controller-manager
|
||||
- --kubeconfig=/etc/kubeconfig
|
||||
volumeMounts:
|
||||
- name: kubeconfig
|
||||
subPath: kubeconfig
|
||||
mountPath: /etc/kubeconfig
|
||||
volumes:
|
||||
- name: kubeconfig
|
||||
secret:
|
||||
secretName: kubeconfig
|
||||
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
# this is a example yaml.
|
||||
# You need to replace value of kubeconfig with your own kubeconfig.
|
||||
apiVersion: v1
|
||||
stringData:
|
||||
kubeconfig: |-
|
||||
apiVersion: v1
|
||||
clusters:
|
||||
- cluster:
|
||||
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1ekNDQWMrZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJd01USXhNVEEzTkRreU5Gb1hEVE13TVRJd09UQTNORGt5TkZvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTGRZCnRSRGJkMEV1d3lZV3FmYy9jbDZLM0RqMi8vVmFnS1BlSUEwRWNaWENkemxybGFDWlNGNUFvVHE4TWpWbXlZRWYKc3VreG9TbTRJZEVMZDNYUzRwaHBIWGVRUllsMUxTbFJFRXNRcDBLbG1iOGhGa2JmVGppZjdwUUFyYTN2VlV1bAp1Uld3M3dJV0hROTA0WmxpZExoQ2hyYTZzb2pzM20xMXRDT2xGOEpIZTBFSjZkeWxqcjR5K1RORUVOQnJza0w2Cnd5UmlDTHJHbVo3Y2VxbjZiOWp1WFk0cjNiUGNvS3V1UWw4UHltTkQ4SmhBNEZYbldvblJ3ZERNRk9LTjlxQmoKL2dUejREVXMreFMyWEsxUlV1RVFCOGZ4blBtS29Ga0Q4QXBxTHFxcExWTUJjenVtMkdzSk9QYmlZT3FMTmd1awo4Ny9GUFRsT0RRSDhyVjdreWcwQ0F3RUFBYU5DTUVBd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZIdjBReHZZaWc0ZWZoNk1kalJjZDlJQUJsemFNQTBHQ1NxR1NJYjMKRFFFQkN3VUFBNElCQVFDUHl3SmluMkJhc3hOdWp0WlZTaUd5WjIwSkVQVkI3MVc4cVYyS2ZoWHcvWnZpNGpDSApjWlBEYmxzdThqTFhraUgrY3ltWHpjc29CLzhkbWRUbWxuMmVhbjIzaHJhWUpVU1JqTDRNdlhGcTFNNmdxL1UwCkcvenhnaGw5WW5wYlVieGk0UFRuNVhaSFl5VDJ4cUEybW9JdkdmYytoV0NZMVpKMXRwaVRjZUFKY0d0QWxGdjkKdExEVHRiM0FhWW5WTVJkWFMxeDdRLzllV1VoeUFGV2JnQ0hrYjB0YXpQbTM0RGpuYXFSbU01dlV2VkkvTGJFYgpZN28vQ09reHJYekl3KzhGbTB4UXl0NUQ0Z3NrQThkNHVqQ1ZaVCtRT0ltdzRWeGtlQjdOZ3puN043MWNqQzZSCnQwZ2R5RUg1VU9STXBvT0d3VVVCTmpSdGd6cmUyWkYwUVlhOQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
|
||||
server: https://172.17.0.2:6443
|
||||
name: kind-karmada
|
||||
contexts:
|
||||
- context:
|
||||
cluster: kind-karmada
|
||||
user: kind-karmada
|
||||
name: karmada
|
||||
current-context: karmada
|
||||
kind: Config
|
||||
preferences: {}
|
||||
users:
|
||||
- name: kind-karmada
|
||||
user:
|
||||
client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURFekNDQWZ1Z0F3SUJBZ0lJQjRsVU9EaDVxa1V3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TURFeU1URXdOelE1TWpSYUZ3MHlNVEV5TVRFd056UTVNalphTURReApGekFWQmdOVkJBb1REbk41YzNSbGJUcHRZWE4wWlhKek1Sa3dGd1lEVlFRREV4QnJkV0psY201bGRHVnpMV0ZrCmJXbHVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXFZd2o5N0QyZEp0UkhOM1MKUmdtODJyZ0hORE5IYkRHQndUV0Vxck9lQlFyS1JjUVBGWE5MbGJ1cXhvRlc0STdKNk8wd1RaRHBvNUxTNEZSOQptbmZLN2JXM040eno3aWpZRWNYeFFQWStWRFJ0TU9CWVJrdjhIenE3MjgvMXRMQTA5Z1RrK0Z0dFE5ckNjNEFTCnAxSjRNUEhEWHVXVC9TaDdTVkMwTHpPa0IrcWRoRVU5MzQrdkpmc1JCakhXd1IrNW1kaUxQWkFaNHRJZll0SHcKMmlNMkNmV09TeEVINTBackc3aW04aHB5czNNWWdwTE8yajc0K2FhZFZxZFI2QjlNWXJKMC8wbW4zTllLMU5rWgozbFVUdmRyd1NYUmV4YWZFUUVUeHZhekh4dE1aS2w4SlRrRHZqUjhSc1pvMUs5V0hvdkdsUEt1RnVqck41bHUvClFtVm83UUlEQVFBQm8wZ3dSakFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUgKQXdJd0h3WURWUjBqQkJnd0ZvQVVlL1JERzlpS0RoNStIb3gyTkZ4MzBnQUdYTm93RFFZSktvWklodmNOQVFFTApCUUFEZ2dFQkFCN0VrdTM5TzBXN2RWRXdqc3dGYzdYNEtIWWZLQ3g4VCtCaGlHclVCcXhIcE40ckdCOFVoT0JLCnp3SWY1c2E2ZmhJUE82b2xXMlMwalFId1ZCZ1RpbTVhS25uaktObGIySHdLakNYUVBPZ0N2R0Z4c2M0WkxYVFEKVW5JQjcwVWZCUHJOakNFRFBsN3N1UXE0MWIycCtkVzRtV0dYQUNoYXdjWkJZbUtlZTVlNFBkTHdteW4zeWgxMgp6eEFpL1UxUm15c0FFd1ZqV25OMGhtQ3NTcWR0UTQ2eDNpT0gxR1MrbzB4MkUxM2RVMURZQk53d0pZTUh3WnVUCm5YSDRadXl1bjVESnRrNFlENDFFbm1NdFZ5OFhyTEVaR21LbDVjb1JMeWR6Sk4zSXRvY0Q2ZTdIYUJmcTZZRXUKZ0NiNG1RMWhhT2k3UVR0ZWpYTmFVekI5SER6aGdaTT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
|
||||
client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBcVl3ajk3RDJkSnRSSE4zU1JnbTgycmdITkROSGJER0J3VFdFcXJPZUJRcktSY1FQCkZYTkxsYnVxeG9GVzRJN0o2TzB3VFpEcG81TFM0RlI5bW5mSzdiVzNONHp6N2lqWUVjWHhRUFkrVkRSdE1PQlkKUmt2OEh6cTcyOC8xdExBMDlnVGsrRnR0UTlyQ2M0QVNwMUo0TVBIRFh1V1QvU2g3U1ZDMEx6T2tCK3FkaEVVOQozNCt2SmZzUkJqSFd3Uis1bWRpTFBaQVo0dElmWXRIdzJpTTJDZldPU3hFSDUwWnJHN2ltOGhweXMzTVlncExPCjJqNzQrYWFkVnFkUjZCOU1ZckowLzBtbjNOWUsxTmtaM2xVVHZkcndTWFJleGFmRVFFVHh2YXpIeHRNWktsOEoKVGtEdmpSOFJzWm8xSzlXSG92R2xQS3VGdWpyTjVsdS9RbVZvN1FJREFRQUJBb0lCQUYrMU56eUVEYXVuWFhOaApHR2ptNkUvRElIWHNHSDVQdUFKYjlxYnh1OXIyeTFYMHBkc2krV0R0emlvK0tzK2Fhd25za3A3R2xjejdmY1NhCmpVaWNKTlpwQktMOEUxcTJmYm9TdGV4STFNaHR5OUdTWXVKVDFGL0FwUGtoZkg3aUZSTm5rZVZNbnZKMTA5eWwKU0dKaG9HMW9uRE8rZnZxaVZtMzllNmxGaW12WXJwakQvNTFvWW1pd0JoRmpjYzcyMGlmdklmYURhNjBFd0wwcgpCaGViUG1mSFFZRzM3ZEZJeDN5dm4xWndXRVFma2hRcGYzeTlwNUNzOTJEYVBVVDhkR3BkZ3lNSDRTOWVMNlJrClBzbjdpcjNCNWtSZjJsSlVnMnV4eG5jbWVzQSsyZ0VYa3F2aldrc2d5Tk5MdGJ2S01La0dPTW5VU1h3MFBBc3kKa29wN0I3VUNnWUVBMGNMQ1BkVExVWjNBWFBrOWVsQkNUYnhnTndwcTlBSUJxQnVHQWhWSlpwaXpUR1NCeGIrcwo4bmtuZEhGd2d6cVcvdXp6RFZoaDl1MFpXQjF2eGdQdlJpN3B4Z3NIUG1qZjVPZko4KzdCQnhxQU1YdjZyTC9wCjNMYytpZVVYbTI1b1hjZjJtL3VOTitUVFBnOVVDWjlJOXhvUkxQTmQ4TlFabmxDUVd6aDlHaGNDZ1lFQXp1d08KeXR3MEQxdXBscml1Vm5XVWRTT3cwc1F3aEJiRnVsMzE5V2hibEFrS2pydGdiMXFMMXpnam1iZjlnR3RHK0FFWApvWVdsd2YxYUp5K0lKZWV0VndxUUZ1RXg4cmFuQ2xHWGNvSm15QmFFWlZBdFB6aUZWaHN0aXhHUHFLWUw3YUUrClBRTXFRTlZROUdLUExta093L1JpYnRWZUJ5ZjdISExoSzF1WmE1c0NnWUVBejFaL3diWnhNcitId1Y3c0VkYjcKY3ZOYzk0cm9wVURHZW5DYVNiell6UHpyWGZ1Syt2aTM3d1VxcHNMcXdBeE43TFl5bVdKZmswQlI2UE5QNUo5SApDRXllN3c4L25jVDBhc05pc0NlenpWMjRrVEZIV3pKbjY2K0Z0YkFwWVk0RXc0NUFpWFpnNUhyZkExMExhR2QyCkxDb3NDQTZYTU5HMmNQS1pmbEdiOXdrQ2dZQklDMFJ6T1F3Zk5NanRJMHYvNmx4UUZLY2lHeERSVEtSM2FQT1UKQ0V1cVZTT0o0bytHOWIydXAyc3R3RFBSSElqUEhJSS95S3FYeWtBeldJZE11MGROQU81K0tOWWRMWjhuSnBWVwpWelMyQWJFREhWRkRxOGd3M0xHVXMvNlN0NDE3cFNKb1Y4dkVXd0VldFpvb2pJZUpqbk1mSjhiZk12cHBRMDVHCnJGUFVkUUtCZ0NoTTdQQW1wclcrWVVOQlpMaTlYSngzeVh4MVhYWUs3NXU3cStjZHNudHhQNzBDb0FSd3hRK1AKOHlDUGFkNXNCbkI3RlNCUUZ1ajNyVmp1WTJxc0dkSjBoWkVwZmV0QXVsRm8wc01Xa2k2ZDI2ZHExaVZ0RlRobgovRzkydEI3OUYyYkczUk9uZEZ5QWV2ZEdicFBjbS9Nb0dkNUtCN3MzWTh4angway8ycThHCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: kubeconfig
|
||||
namespace: karmada-system
|
|
@ -10,7 +10,6 @@ import (
|
|||
"k8s.io/client-go/dynamic"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/kubernetes/scheme"
|
||||
"k8s.io/client-go/tools/clientcmd"
|
||||
"k8s.io/component-base/logs"
|
||||
"k8s.io/klog/v2"
|
||||
"sigs.k8s.io/controller-runtime"
|
||||
|
@ -36,17 +35,12 @@ func init() {
|
|||
|
||||
// NewControllerManagerCommand creates a *cobra.Command object with default parameters
|
||||
func NewControllerManagerCommand(stopChan <-chan struct{}) *cobra.Command {
|
||||
verFlag := false
|
||||
opts := options.NewOptions()
|
||||
|
||||
cmd := &cobra.Command{
|
||||
Use: "controller-manager",
|
||||
Long: `The controller manager runs a bunch of controllers`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
if verFlag {
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
opts.Complete()
|
||||
if err := Run(opts, stopChan); err != nil {
|
||||
fmt.Fprintf(os.Stderr, "%v\n", err)
|
||||
|
@ -56,9 +50,6 @@ func NewControllerManagerCommand(stopChan <-chan struct{}) *cobra.Command {
|
|||
}
|
||||
|
||||
cmd.Flags().AddGoFlagSet(flag.CommandLine)
|
||||
|
||||
cmd.Flags().BoolVar(&verFlag, "version", false, "Prints the version info of controller manager.")
|
||||
|
||||
return cmd
|
||||
}
|
||||
|
||||
|
@ -67,14 +58,11 @@ func Run(opts *options.Options, stopChan <-chan struct{}) error {
|
|||
logs.InitLogs()
|
||||
defer logs.FlushLogs()
|
||||
|
||||
var err error
|
||||
// TODO(RainbowMango): need to change to shim kube-apiserver config.
|
||||
opts.KubeConfig, err = clientcmd.BuildConfigFromFlags("", "")
|
||||
config, err := controllerruntime.GetConfig()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
controllerManager, err := controllerruntime.NewManager(opts.KubeConfig, controllerruntime.Options{
|
||||
controllerManager, err := controllerruntime.NewManager(config, controllerruntime.Options{
|
||||
Scheme: aggregatedScheme,
|
||||
LeaderElection: true, // TODO(RainbowMango): Add a flag '--enable-leader-election' for this option.
|
||||
LeaderElectionID: "41db11fa.karmada.io",
|
||||
|
|
|
@ -4,7 +4,6 @@ import (
|
|||
"time"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/client-go/rest"
|
||||
"k8s.io/client-go/tools/leaderelection/resourcelock"
|
||||
componentbaseconfig "k8s.io/component-base/config"
|
||||
"k8s.io/klog/v2"
|
||||
|
@ -18,7 +17,6 @@ var (
|
|||
|
||||
// Options contains everything necessary to create and run controller-manager.
|
||||
type Options struct {
|
||||
KubeConfig *rest.Config
|
||||
HostNamespace string
|
||||
LeaderElection componentbaseconfig.LeaderElectionConfiguration
|
||||
}
|
||||
|
|
|
@ -26,5 +26,8 @@ kubectl create -f "${SCRIPT_ROOT}/artifacts/deploy/propagationstrategy.karmada.i
|
|||
kubectl create -f "${SCRIPT_ROOT}/artifacts/deploy/propagationstrategy.karmada.io_propagationbindings.yaml"
|
||||
kubectl create -f "${SCRIPT_ROOT}/artifacts/deploy/propagationstrategy.karmada.io_propagationworks.yaml"
|
||||
|
||||
# create secret for controller-manager
|
||||
kubectl create secret generic kubeconfig --from-file=kubeconfig="${KUBECONFIG}" -n karmada-system
|
||||
|
||||
# deploy controller-manager
|
||||
kubectl create -f "${SCRIPT_ROOT}/artifacts/deploy/controller-manager.yaml"
|
||||
|
|
Loading…
Reference in New Issue