kubeflow / kfctl

kfctl is a CLI for deploying and managing Kubeflow
Apache License 2.0
181 stars 138 forks source link

well-defined vars that were never replaced: static_email,static_password_hash #402

Open amybachir opened 4 years ago

amybachir commented 4 years ago

I'm trying out kubeflow 1.1.0 with kfctl_istio_dex.v1.1.0.yaml manifest installed on Azure kubernetes cluster.

Before 1.1.0, I would customize the installation by adding my custom parameters directly in kfctl_istio_dex.v1.1.0.yaml configuration file but after 1.1.0 release, kubeflow documentation says the following:

"Note that with the above manifests, the kfctl CLI expects all applications to have a kustomization.yaml file in the kustomizeConfig.repoRef.path directory. The kustomization.yaml file will be used by the kustomize to build and apply all Kubernetes resources for that stack of applications. The parameters and overlays fields under kustomizeConfig for each application will be ignored."

I configured some parameters including dex static_email and static_password_hash in params.env in ".cache/manifests/manifests-1.1-branch/dex-auth/dex-crds/base" after my initial installation then applied the configuration with kfctl apply.

My custom parameters don't seem to be replaced and I see the following in the output of kfctl apply: well-defined vars that were never replaced: static_email,static_password_hash.

issue-label-bot[bot] commented 4 years ago

Issue-Label Bot is automatically applying the labels:

Label Probability
area/kfctl 0.97

Please mark this comment with :thumbsup: or :thumbsdown: to give our bot feedback! Links: app homepage, dashboard and code for this bot.

amybachir commented 4 years ago

I found the answer to this question in this github issue https://github.com/kubeflow/manifests/issues/1062

I had to dig a lot to find the answer. It would be very helpful if kubeflow can provide a complete example on how to customize the deployment after 1.1.0 release. The examples should include how to customize global and application specific parameters.

jbottum commented 4 years ago

Hi @amybachir is this now resolved? Can we close this?

amybachir commented 4 years ago

Hi @amybachir is this now resolved? Can we close this?

Yes! Thanks for checking in!

jtfogarty commented 4 years ago

/kind bug

muthurajr commented 3 years ago

@amybachir I'm struck at the same issue. Can you help with the workaround fix you tried.

neonihil commented 3 years ago

I'm also stuck at this. As mentioned above in the original post, the docs says:

"The parameters and overlays fields under kustomizeConfig for each application will be ignored."

Then a bit later it also says:

"To customize these configurations, you can modify parameters in your ${CONFIG_FILE}, and then run kfctl apply to apply the configuration to your Kubeflow cluster."

My guess the docs is outdated.

I would love to have a bit of help with this. How do I customize Kubeflow in 1.1?

muthurajr commented 3 years ago

@neonihil There might be some easy way of specifying the application configurations. I used below steps to override the user and password with the assumption that the KfDef config file is already downloaded.

  1. kfctl build -V -f ${CONFIG_FILE} This will generate kustomize files to be applied.

  2. kustomize/dex/kustomization.yaml is specific to dex-auth and has to be edited for changing email & password. Refer .cache/manifests/manifests-1.1-branch/stacks/kubernetes/application/dex-auth

  3. An example configuration can be

    • Copy .cache/manifests/manifests-1.1-branch/stacks/kubernetes/application/dex-auth/config/params.env to kustomize/dex/params.env
    • Edit kustomize/dex/params.env based on your need.
      # password hash generation
      python3 -c 'from passlib.hash import bcrypt; import getpass; print(bcrypt.using(rounds=12, ident="2y").hash(getpass.getpass()))'
    • Add below content to kustomize/dex/kustomization.yaml
      
      configMapGenerator:
    • behavior: merge envs:
    • ./params.env name: dex-config
  4. kfctl apply -V -f ${CONFIG_FILE}