Upgrading a Kubeflow Deployment
Upgrading your deployment to a later version of Kubeflow
Upgrading from Kubeflow v0.7.0 or later
Alpha
This Kubeflow component has alpha status with limited support. See the Kubeflow versioning policies. The Kubeflow team is interested in your feedback about the usability of the feature.
Upgrading your Kubeflow deployment is supported if your deployment is v0.7.0 or later.
Prerequisites
Download the latest kfctl binary from theKubeflow releases page.
Ensure that your Kubeflow namespace is annotated with the
control-plane: kubeflow
label. You can verify this by doing:
kubectl get namespace $NAMESPACE -o yaml
You should see something like:
metadata:
labels:
control-plane: kubeflow
If the label is not present, you can patch the namespace by doing
kubectl label namespace $NAMESPACE control-plane=kubeflow
You must have a local Kubeflow application directory matching your currentdeployment. We’ll call this
${KF_DIR}
.- This should be present if you deployed Kubeflow using the kfctl tool.
If you deployed Kubeflow using some other method (e.g. theDeployment UI),you will need to first create a local deployment directory:
- Follow the instructions for environment preparations.
- Make sure that the
${PROJECT}
,${ZONE}
, and${KF_NAME}
variables match exactly with your deployment. - For
${CONFIG_URI}
, use the appropriate YAML configurationfile.
- Make sure that the
- Create your local deployment files:
- Follow the instructions for environment preparations.
mkdir -p ${KF_DIR}
cd ${KF_DIR}
kfctl build -V -f ${CONFIG_URI}
Upgrade instructions
Prepare your upgrade specification:
- Create an upgrade specification in the parent directory of your
${KF_DIR}
. For example, to upgradea v0.7.0 deployment to v0.7.1, usethis specification.Your directory structure should look like:
${PARENT_DIR}
|----${KF_DIR}
|----kfctl_upgrade_spec.yaml
- Modify the contents of the upgrade specification for your deployment:
apiVersion: kfupgrade.apps.kubeflow.org/v1alpha1
kind: KfUpgrade
metadata:
name: kf-upgrade-v0.7.1
spec:
currentKfDef:
# Replace with the name of your Kubeflow app
name: kubeflow-app
version: v0.7.0
newKfDef:
# Replace with the name of your kubeflow app
name: kubeflow-app
version: v0.7.1
# Replace this with the path to the KfDef that you are upgrading to
baseConfigPath: https://raw.githubusercontent.com/kubeflow/manifests/v0.7-branch/kfdef/kfctl_gcp_iap.0.7.1.yaml
If you don’t need to change any kustomize parameter values in your configuration, run the apply
command now to upgrade your deployment:
kfctl apply -f ${UPGRADE_SPEC} -V
Alternatively you can follow these steps to change the configuration before applying the upgrade:
- Run a
build
command:
kfctl build -f ${UPGRADE_SPEC} -V
The above command creates a new Kubeflow application in the same directory, with a namein the form of a 7-character long hash value. The directory structure should look like:
${PARENT_DIR}
|----${KF_DIR}
|----${UPGRADE_DIR}
|----kfctl_upgrade_spec.yaml
You can examine and change the kustomize parameter values in${UPGRADE_DIR}
.
- Run the
apply
command to upgrade the deployment:
kfctl apply -f ${UPGRADE_SPEC} -V
Upgrades from earlier versions of Kubeflow
For earlier versions, Kubeflow makes no promises of backwards compatibility orupgradeability. Nonetheless, here are some instructions for updating your deployment:
Check your Kubeflow configuration directory (
${KF_DIR}
) into source controlas a backup.Delete your existing Kubeflow cluster:
kfctl delete -V
Download the kfctl v1.0 release from theKubeflow releasespage.
Unpack the tar ball:
tar -xvf kfctl_<release tag>_<platform>.tar.gz
- Update your kustomize manifests:
export CONFIG_FILE=<the path to your Kubeflow config file>
kfctl build -V -f ${CONFIG_FILE}
The ${CONFIG_FILE}
environment variable must contain the path to theKubeflow configuration file in your ${KF_DIR}
directory. For example,${KF_DIR}/kfctl_k8s_istio.v1.0.0.yaml
or ${KF_DIR}/kfctl_istio_dex.yaml
Re-apply any customizations that you need.
Update the deployment:
kfctl apply -V -f ${CONFIG_FILE}
Upgrading Kubeflow Pipelines
See the Kubeflow Pipelines upgrade guide.
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.
Last modified 04.03.2020: Clarified that GCP basic auth is not supported and removed most references (#1765) (8703f266)