Merge pull request #2795 from jwcesign/use-image-in-docker

Download images from dockerhub by default
This commit is contained in:
karmada-bot 2022-11-15 14:42:25 +08:00 committed by GitHub
commit d653b7aa21
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 40 additions and 42 deletions

View File

@ -4,7 +4,7 @@ SOURCES := $(shell find . -type f -name '*.go')
LDFLAGS='$(shell hack/version.sh)'
# Images management
REGISTRY?="swr.ap-southeast-1.myhuaweicloud.com/karmada"
REGISTRY?="docker.io/karmada"
REGISTRY_USER_NAME?=""
REGISTRY_PASSWORD?=""
REGISTRY_SERVER_ADDRESS?=""

View File

@ -21,7 +21,7 @@ spec:
operator: Exists
containers:
- name: karmada-agent
image: swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-agent:latest
image: docker.io/karmada/karmada-agent:latest
imagePullPolicy: {{image_pull_policy}}
command:
- /bin/karmada-agent

View File

@ -22,7 +22,7 @@ spec:
automountServiceAccountToken: false
containers:
- name: karmada-aggregated-apiserver
image: swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-aggregated-apiserver:latest
image: docker.io/karmada/karmada-aggregated-apiserver:latest
imagePullPolicy: IfNotPresent
volumeMounts:
- name: karmada-certs

View File

@ -21,7 +21,7 @@ spec:
operator: Exists
containers:
- name: karmada-controller-manager
image: swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-controller-manager:latest
image: docker.io/karmada/karmada-controller-manager:latest
imagePullPolicy: IfNotPresent
command:
- /bin/karmada-controller-manager

View File

@ -21,7 +21,7 @@ spec:
operator: Exists
containers:
- name: karmada-descheduler
image: swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-descheduler:latest
image: docker.io/karmada/karmada-descheduler:latest
imagePullPolicy: IfNotPresent
command:
- /bin/karmada-descheduler

View File

@ -21,7 +21,7 @@ spec:
operator: Exists
containers:
- name: karmada-scheduler-estimator
image: swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-scheduler-estimator:latest
image: docker.io/karmada/karmada-scheduler-estimator:latest
imagePullPolicy: IfNotPresent
command:
- /bin/karmada-scheduler-estimator

View File

@ -21,7 +21,7 @@ spec:
operator: Exists
containers:
- name: karmada-scheduler
image: swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-scheduler:latest
image: docker.io/karmada/karmada-scheduler:latest
imagePullPolicy: IfNotPresent
livenessProbe:
httpGet:

View File

@ -22,7 +22,7 @@ spec:
automountServiceAccountToken: false
containers:
- name: karmada-search
image: swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-search:latest
image: docker.io/karmada/karmada-search:latest
imagePullPolicy: IfNotPresent
volumeMounts:
- name: karmada-certs

View File

@ -21,7 +21,7 @@ spec:
operator: Exists
containers:
- name: karmada-webhook
image: swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-webhook:latest
image: docker.io/karmada/karmada-webhook:latest
imagePullPolicy: IfNotPresent
command:
- /bin/karmada-webhook

View File

@ -227,7 +227,7 @@ helm install karmada-scheduler-estimator -n karmada-system ./charts/karmada
| `agent.podLabels` | Labels of the agent pods | `{}` |
| `agent.podAnnotations` | Annotations of the agent pods | `{}` |
| `agent.imagePullSecrets` | Image pull secret of the agent | `[]` |
| `agent.image.repository` | Image of the agent | `"swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-agent"` |
| `agent.image.repository` | Image of the agent | `"docker.io/karmada/karmada-agent"` |
| `agent.image.tag` | Image tag of the agent | `"latest"` |
| `agent.image.pullPolicy` | Image pull policy of the agent | `"Always"` |
| `agent.resources` | Resource quota of the agent | `{}` |
@ -240,7 +240,7 @@ helm install karmada-scheduler-estimator -n karmada-system ./charts/karmada
| `scheduler.podLabels` | Labels of the scheduler pods | `{}` |
| `scheduler.podAnnotations` | Annotations of the scheduler pods | `{}` |
| `scheduler.imagePullSecrets` | Image pull secret of the scheduler | `[]` |
| `scheduler.image.repository` | Image of the scheduler | `"swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-scheduler"` |
| `scheduler.image.repository` | Image of the scheduler | `"docker.io/karmada/karmada-scheduler"` |
| `scheduler.image.tag` | Image tag of the scheduler | `"latest"` |
| `scheduler.image.pullPolicy` | Image pull policy of the scheduler | `"Always"` |
| `scheduler.resources` | Resource quota of the scheduler | `{}` |
@ -253,7 +253,7 @@ helm install karmada-scheduler-estimator -n karmada-system ./charts/karmada
| `webhook.podLabels` | Labels of the webhook pods | `{}` |
| `webhook.podAnnotations` | Annotations of the webhook pods | `{}` |
| `webhook.imagePullSecrets` | Image pull secret of the webhook | `[]` |
| `webhook.image.repository` | Image of the webhook | `"swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-webhook"` |
| `webhook.image.repository` | Image of the webhook | `"docker.io/karmada/karmada-webhook"` |
| `webhook.image.tag` | Image tag of the webhook | `"latest"` |
| `webhook.image.pullPolicy` | Image pull policy of the webhook | `"Always"` |
| `webhook.resources` | Resource quota of the webhook | `{}` |
@ -266,7 +266,7 @@ helm install karmada-scheduler-estimator -n karmada-system ./charts/karmada
| `controllerManager.podLabels` | Labels of the karmada-controller-manager pods | `{}` |
| `controllerManager.podAnnotations` | Annotations of the karmada-controller-manager pods | `{}` |
| `controllerManager.imagePullSecrets` | Image pull secret of the karmada-controller-manager | `[]` |
| `controllerManager.image.repository` | Image of the karmada-controller-manager | `"swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-controller-manager"` |
| `controllerManager.image.repository` | Image of the karmada-controller-manager | `"docker.io/karmada/karmada-controller-manager"` |
| `controllerManager.image.tag` | Image tag of the karmada-controller-manager | `"latest"` |
| `controllerManager.image.pullPolicy` | Image pull policy of the karmada-controller-manager | `"Always"` |
| `controllerManager.resources` | Resource quota of the karmada-controller-manager | `{}` |
@ -295,7 +295,7 @@ helm install karmada-scheduler-estimator -n karmada-system ./charts/karmada
| `aggregatedApiServer.podLabels` | Labels of the karmada-aggregated-apiserver pods | `{}` |
| `aggregatedApiServer.podAnnotations` | Annotations of the karmada-aggregated-apiserver pods | `{}` |
| `aggregatedApiServer.imagePullSecrets` | Image pull secret of the karmada-aggregated-apiserver | `[]` |
| `aggregatedApiServer.image.repository` | Image of the karmada-aggregated-apiserver | `"swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-aggregated-apiserver"` |
| `aggregatedApiServer.image.repository` | Image of the karmada-aggregated-apiserver | `"docker.io/karmada/karmada-aggregated-apiserver"` |
| `aggregatedApiServer.image.tag` | Image tag of the karmada-aggregated-apiserver | `"latest"` |
| `aggregatedApiServer.image.pullPolicy` | Image pull policy of the karmada-aggregated-apiserver | `"Always"` |
| `aggregatedApiServer.resources` | Resource quota of the karmada-aggregated-apiserver | `{requests: {cpu: 100m}}` |
@ -326,7 +326,7 @@ helm install karmada-scheduler-estimator -n karmada-system ./charts/karmada
| `schedulerEstimator.podLabels` | Labels of the scheduler-estimator pods | `{}` |
| `schedulerEstimator.podAnnotations` | Annotations of the scheduler-estimator pods | `{}` |
| `schedulerEstimator.imagePullSecrets` | Image pull secret of the scheduler-estimator | `[]` |
| `schedulerEstimator.image.repository` | Image of the scheduler-estimator | `"swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-scheduler-estimator"` |
| `schedulerEstimator.image.repository` | Image of the scheduler-estimator | `"docker.io/karmada/karmada-scheduler-estimator"` |
| `schedulerEstimator.image.tag` | Image tag of the scheduler-estimator | `"latest"` |
| `schedulerEstimator.image.pullPolicy` | Image pull policy of the scheduler-estimator | `"Always"` |
| `schedulerEstimator.resources` | Resource quota of the scheduler-estimator | `{}` |
@ -339,7 +339,7 @@ helm install karmada-scheduler-estimator -n karmada-system ./charts/karmada
| `descheduler.podAnnotations` | Annotations of the descheduler pods | `{}` |
| `descheduler.podLabels` | Labels of the descheduler pods | `{}` |
| `descheduler.imagePullSecrets` | Image pull secret of the descheduler | `[]` |
| `descheduler.image.repository` | Image of the descheduler | `swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-descheduler` |
| `descheduler.image.repository` | Image of the descheduler | `docker.io/karmada/karmada-descheduler` |
| `descheduler.image.pullPolicy` | Image pull policy of the descheduler | `Always` |
| `descheduler.image.tag` | Overrides the image tag whose default is the latest | `latest` |
| `descheduler.resources` | Resource quota of the descheduler | `{}` |
@ -352,7 +352,7 @@ helm install karmada-scheduler-estimator -n karmada-system ./charts/karmada
| `search.podAnnotations` | Annotations of the search pods | `{}` |
| `search.podLabels` | Labels of the search pods | `{}` |
| `search.imagePullSecrets` | Image pull secret of the search | `[]` |
| `search.image.repository` | Image of the search | `swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-search` |
| `search.image.repository` | Image of the search | `docker.io/karmada/karmada-search` |
| `search.image.pullPolicy` | Image pull policy of the search | `Always` |
| `search.image.tag` | Overrides the image tag whose default is the latest | `latest` |
| `search.resources` | Resource quota of the search | `{}` |

View File

@ -138,7 +138,7 @@ scheduler:
## @param image.pullSecrets Specify docker-registry secret names as an array
##
image:
registry: swr.ap-southeast-1.myhuaweicloud.com
registry: docker.io
repository: karmada/karmada-scheduler
tag: latest
## Specify a imagePullPolicy
@ -195,7 +195,7 @@ webhook:
## @param image.pullSecrets Specify docker-registry secret names as an array
##
image:
registry: swr.ap-southeast-1.myhuaweicloud.com
registry: docker.io
repository: karmada/karmada-webhook
tag: latest
## Specify a imagePullPolicy
@ -252,7 +252,7 @@ controllerManager:
## @param image.pullSecrets Specify docker-registry secret names as an array
##
image:
registry: swr.ap-southeast-1.myhuaweicloud.com
registry: docker.io
repository: karmada/karmada-controller-manager
tag: latest
## Specify a imagePullPolicy
@ -394,7 +394,7 @@ aggregatedApiServer:
## @param image.pullSecrets Specify docker-registry secret names as an array
##
image:
registry: swr.ap-southeast-1.myhuaweicloud.com
registry: docker.io
repository: karmada/karmada-aggregated-apiserver
tag: latest
## Specify a imagePullPolicy
@ -599,7 +599,7 @@ agent:
## @param image.pullSecrets Specify docker-registry secret names as an array
##
image:
registry: swr.ap-southeast-1.myhuaweicloud.com
registry: docker.io
repository: karmada/karmada-agent
tag: latest
## Specify a imagePullPolicy
@ -677,7 +677,7 @@ schedulerEstimator:
## @param image.pullSecrets Specify docker-registry secret names as an array
##
image:
registry: swr.ap-southeast-1.myhuaweicloud.com
registry: docker.io
repository: karmada/karmada-scheduler-estimator
tag: latest
## Specify a imagePullPolicy
@ -734,7 +734,7 @@ descheduler:
## @param image.pullSecrets Specify docker-registry secret names as an array
##
image:
registry: swr.ap-southeast-1.myhuaweicloud.com
registry: docker.io
repository: karmada/karmada-descheduler
tag: latest
## Specify a imagePullPolicy
@ -791,7 +791,7 @@ search:
## @param image.pullSecrets Specify docker-registry secret names as an array
##
image:
registry: swr.ap-southeast-1.myhuaweicloud.com
registry: docker.io
repository: karmada/karmada-search
tag: latest
## Specify a imagePullPolicy

View File

@ -21,7 +21,7 @@ spec:
operator: Exists
containers:
- name: karmada-interpreter-webhook-example
image: swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-interpreter-webhook-example:latest
image: docker.io/karmada/karmada-interpreter-webhook-example:latest
imagePullPolicy: IfNotPresent
command:
- /bin/karmada-interpreter-webhook-example

View File

@ -29,7 +29,7 @@ set -o pipefail
REPO_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
source "${REPO_ROOT}/hack/util.sh"
REGISTRY=${REGISTRY:-"swr.ap-southeast-1.myhuaweicloud.com/karmada"}
REGISTRY=${REGISTRY:-"docker.io/karmada"}
VERSION=${VERSION:="unknown"}
DOCKER_BUILD_ARGS=${DOCKER_BUILD_ARGS:-}

View File

@ -86,7 +86,7 @@ util::create_cluster "${PULL_MODE_CLUSTER_NAME}" "${MEMBER_CLUSTER_KUBECONFIG}"
#step2. make images and get karmadactl
export VERSION="latest"
export REGISTRY="swr.ap-southeast-1.myhuaweicloud.com/karmada"
export REGISTRY="docker.io/karmada"
make images GOOS="linux" --directory="${REPO_ROOT}"
GO111MODULE=on go install "github.com/karmada-io/karmada/cmd/karmadactl"
@ -98,8 +98,6 @@ echo "Waiting for the host clusters to be ready..."
util::check_clusters_ready "${MAIN_KUBECONFIG}" "${HOST_CLUSTER_NAME}"
#step4. load components images to kind cluster
export VERSION="latest"
export REGISTRY="swr.ap-southeast-1.myhuaweicloud.com/karmada"
kind load docker-image "${REGISTRY}/karmada-controller-manager:${VERSION}" --name="${HOST_CLUSTER_NAME}"
kind load docker-image "${REGISTRY}/karmada-scheduler:${VERSION}" --name="${HOST_CLUSTER_NAME}"
kind load docker-image "${REGISTRY}/karmada-descheduler:${VERSION}" --name="${HOST_CLUSTER_NAME}"

View File

@ -17,7 +17,7 @@ MEMBER_CLUSTER_2_NAME=${MEMBER_CLUSTER_2_NAME:-"member2"}
PULL_MODE_CLUSTER_NAME=${PULL_MODE_CLUSTER_NAME:-"member3"}
export VERSION="latest"
export REGISTRY="swr.ap-southeast-1.myhuaweicloud.com/karmada"
export REGISTRY="docker.io/karmada"
CERT_DIR=${CERT_DIR:-"${HOME}/.karmada"}
ROOT_CA_FILE=${CERT_DIR}/ca.crt

View File

@ -32,7 +32,7 @@ var (
%[1]s enable karmada-search --karmada-kubeconfig /etc/karmada/karmada-apiserver.config
# Specify the karmada-search image
%[1]s enable karmada-search --karmada-search-image swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-scheduler-estimator:latest
%[1]s enable karmada-search --karmada-search-image docker.io/karmada/karmada-scheduler-estimator:latest
# Sepcify the namespace where Karmada components are installed
%[1]s enable karmada-search --namespace karmada-system
@ -73,11 +73,11 @@ func NewCmdAddonsEnable(parentCommand string) *cobra.Command {
opts.GlobalCommandOptions.AddFlags(flags)
flags.IntVar(&opts.WaitPodReadyTimeout, "pod-timeout", 30, "Wait pod ready timeout.")
flags.IntVar(&opts.WaitAPIServiceReadyTimeout, "apiservice-timeout", 30, "Wait apiservice ready timeout.")
flags.StringVar(&opts.KarmadaSearchImage, "karmada-search-image", fmt.Sprintf("swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-search:%s", releaseVer.PatchRelease()), "karmada search image")
flags.StringVar(&opts.KarmadaSearchImage, "karmada-search-image", fmt.Sprintf("docker.io/karmada/karmada-search:%s", releaseVer.PatchRelease()), "karmada search image")
flags.Int32Var(&opts.KarmadaSearchReplicas, "karmada-search-replicas", 1, "Karmada search replica set")
flags.StringVar(&opts.KarmadaDeschedulerImage, "karmada-descheduler-image", fmt.Sprintf("swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-descheduler:%s", releaseVer.PatchRelease()), "karmada descheduler image")
flags.StringVar(&opts.KarmadaDeschedulerImage, "karmada-descheduler-image", fmt.Sprintf("docker.io/karmada/karmada-descheduler:%s", releaseVer.PatchRelease()), "karmada descheduler image")
flags.Int32Var(&opts.KarmadaDeschedulerReplicas, "karmada-descheduler-replicas", 1, "Karmada descheduler replica set")
flags.StringVar(&opts.KarmadaSchedulerEstimatorImage, "karmada-scheduler-estimator-image", fmt.Sprintf("swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-scheduler-estimator:%s", releaseVer.PatchRelease()), "karmada scheduler-estimator image")
flags.StringVar(&opts.KarmadaSchedulerEstimatorImage, "karmada-scheduler-estimator-image", fmt.Sprintf("docker.io/karmada/karmada-scheduler-estimator:%s", releaseVer.PatchRelease()), "karmada scheduler-estimator image")
flags.Int32Var(&opts.KarmadaEstimatorReplicas, "karmada-estimator-replicas", 1, "Karmada scheduler estimator replica set")
flags.StringVar(&opts.MemberKubeConfig, "member-kubeconfig", "", "Member cluster's kubeconfig which to deploy scheduler estimator")
flags.StringVar(&opts.MemberContext, "member-context", "", "Member cluster's context which to deploy scheduler estimator")

View File

@ -128,15 +128,15 @@ func NewCmdInit(parentCommand string) *cobra.Command {
flags.StringVarP(&opts.KarmadaPkiPath, "karmada-pki", "", "/etc/karmada/pki", "Karmada pki path. Karmada cert files")
flags.StringVarP(&opts.KarmadaAPIServerImage, "karmada-apiserver-image", "", "", "Kubernetes apiserver image")
flags.Int32VarP(&opts.KarmadaAPIServerReplicas, "karmada-apiserver-replicas", "", 1, "Karmada apiserver replica set")
flags.StringVarP(&opts.KarmadaSchedulerImage, "karmada-scheduler-image", "", fmt.Sprintf("swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-scheduler:%s", releaseVer.PatchRelease()), "Karmada scheduler image")
flags.StringVarP(&opts.KarmadaSchedulerImage, "karmada-scheduler-image", "", fmt.Sprintf("docker.io/karmada/karmada-scheduler:%s", releaseVer.PatchRelease()), "Karmada scheduler image")
flags.Int32VarP(&opts.KarmadaSchedulerReplicas, "karmada-scheduler-replicas", "", 1, "Karmada scheduler replica set")
flags.StringVarP(&opts.KubeControllerManagerImage, "karmada-kube-controller-manager-image", "", "", "Kubernetes controller manager image")
flags.Int32VarP(&opts.KubeControllerManagerReplicas, "karmada-kube-controller-manager-replicas", "", 1, "Karmada kube controller manager replica set")
flags.StringVarP(&opts.KarmadaControllerManagerImage, "karmada-controller-manager-image", "", fmt.Sprintf("swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-controller-manager:%s", releaseVer.PatchRelease()), "Karmada controller manager image")
flags.StringVarP(&opts.KarmadaControllerManagerImage, "karmada-controller-manager-image", "", fmt.Sprintf("docker.io/karmada/karmada-controller-manager:%s", releaseVer.PatchRelease()), "Karmada controller manager image")
flags.Int32VarP(&opts.KarmadaControllerManagerReplicas, "karmada-controller-manager-replicas", "", 1, "Karmada controller manager replica set")
flags.StringVarP(&opts.KarmadaWebhookImage, "karmada-webhook-image", "", fmt.Sprintf("swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-webhook:%s", releaseVer.PatchRelease()), "Karmada webhook image")
flags.StringVarP(&opts.KarmadaWebhookImage, "karmada-webhook-image", "", fmt.Sprintf("docker.io/karmada/karmada-webhook:%s", releaseVer.PatchRelease()), "Karmada webhook image")
flags.Int32VarP(&opts.KarmadaWebhookReplicas, "karmada-webhook-replicas", "", 1, "Karmada webhook replica set")
flags.StringVarP(&opts.KarmadaAggregatedAPIServerImage, "karmada-aggregated-apiserver-image", "", fmt.Sprintf("swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-aggregated-apiserver:%s", releaseVer.PatchRelease()), "Karmada aggregated apiserver image")
flags.StringVarP(&opts.KarmadaAggregatedAPIServerImage, "karmada-aggregated-apiserver-image", "", fmt.Sprintf("docker.io/karmada/karmada-aggregated-apiserver:%s", releaseVer.PatchRelease()), "Karmada aggregated apiserver image")
flags.Int32VarP(&opts.KarmadaAggregatedAPIServerReplicas, "karmada-aggregated-apiserver-replicas", "", 1, "Karmada aggregated apiserver replica set")
return cmd

View File

@ -69,7 +69,7 @@ spec:
operator: Exists
containers:
- name: karmada-agent
image: swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-agent:latest
image: docker.io/karmada/karmada-agent:latest
command:
- /bin/karmada-agent
- --karmada-kubeconfig=/etc/kubeconfig/karmada-kubeconfig
@ -119,7 +119,7 @@ spec:
operator: Exists
containers:
- name: karmada-scheduler-estimator
image: swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-scheduler-estimator:latest
image: docker.io/karmada/karmada-scheduler-estimator:latest
imagePullPolicy: IfNotPresent
command:
- /bin/karmada-scheduler-estimator

View File

@ -173,7 +173,7 @@ func NewCmdRegister(parentCommand string) *cobra.Command {
flags.StringSliceVar(&opts.BootstrapToken.CACertHashes, "discovery-token-ca-cert-hash", []string{}, "For token-based discovery, validate that the root CA public key matches this hash (format: \"<type>:<value>\").")
flags.BoolVar(&opts.BootstrapToken.UnsafeSkipCAVerification, "discovery-token-unsafe-skip-ca-verification", false, "For token-based discovery, allow joining without --discovery-token-ca-cert-hash pinning.")
flags.DurationVar(&opts.Timeout, "discovery-timeout", DefaultDiscoveryTimeout, "The timeout to discovery karmada apiserver client.")
flags.StringVar(&opts.KarmadaAgentImage, "karmada-agent-image", fmt.Sprintf("swr.ap-southeast-1.myhuaweicloud.com/karmada/karmada-agent:%s", releaseVer.PatchRelease()), "Karmada agent image.")
flags.StringVar(&opts.KarmadaAgentImage, "karmada-agent-image", fmt.Sprintf("docker.io/karmada/karmada-agent:%s", releaseVer.PatchRelease()), "Karmada agent image.")
flags.Int32Var(&opts.KarmadaAgentReplicas, "karmada-agent-replicas", 1, "Karmada agent replicas.")
flags.Int32Var(&opts.CertExpirationSeconds, "cert-expiration-seconds", DefaultCertExpirationSeconds, "The expiration time of certificate.")
flags.BoolVar(&opts.DryRun, "dry-run", false, "Run the command in dry-run mode, without making any server requests.")