Description
The Kubeflow Notebooks WG has been actively working on the Notebooks 2.0 application and one of the efforts they invested in was modernizing the kustomize manifests to follow current best practices.
As the kubeflow/dashboard repository is also under the purview of the Notebooks WG - we want to align the manifest structure in this repo with the notebooks-v2 branch of kubeflow/notebooks.
At a high level - this boils down to 2 concepts:
- consistently and meaningfully applying
app.kubernetes.io/xxxx labels to all resources
- structuring the
kustomize folder hierarchy to highlight the following concepts:
The following PRs for the kubeflow/notebooks repo tackled these areas and can be used for inspiration:
Implementation Details
app.kubernetes.io/* labels
app.kubernetes.io/part-of: kubeflow-dashboard
- static label that can be applied to everything in repo
app.kubernetes.io/managed-by: kustomize
- static label that can be applied to any/all manifests defined in repo under
kustomize directory
app.kubernetes.io/name: ***
- ex:
app.kubernetes.io/name: profile-controller
- name of an application within the repo
- ℹ️ confusingly, this concept probably maps to the components/ directory of the repo
app.kubernetes.io/component: ***
- name of a related group of resources within the application.
- ex:
app.kubernetes.io/component: manager
kustomize directory structure
manifests
└── kustomize
├── base
│ ├── kustomization.yaml
│ ├── ...
├── components
│ ├── example-comp-1
│ │ └── kustomization.yaml
│ └── example-comp-2
│ ├── kustomization.yaml
│ └── ...
└── overlays
└── example-overlay-1
└── kustomization.yaml
Acceptance Criteria
Description
The Kubeflow Notebooks WG has been actively working on the Notebooks 2.0 application and one of the efforts they invested in was modernizing the
kustomizemanifests to follow current best practices.As the
kubeflow/dashboardrepository is also under the purview of the Notebooks WG - we want to align the manifest structure in this repo with thenotebooks-v2branch ofkubeflow/notebooks.At a high level - this boils down to 2 concepts:
app.kubernetes.io/xxxxlabels to all resourceskustomizefolder hierarchy to highlight the following concepts:basecomponentsoverlaysThe following PRs for the
kubeflow/notebooksrepo tackled these areas and can be used for inspiration:app.kubernetes.io/*labelsImplementation Details
app.kubernetes.io/* labelsapp.kubernetes.io/part-of: kubeflow-dashboardapp.kubernetes.io/managed-by: kustomizekustomizedirectoryapp.kubernetes.io/name: ***app.kubernetes.io/name: profile-controllerapp.kubernetes.io/component: ***app.kubernetes.io/component: managerkustomizedirectory structureAcceptance Criteria
app.kubernetes.io/*labels applied to all resources inmanifests/kustomizekustomize-related folders under eachcomponents/directory follows aforementioned hierarchyapp.kubernetes.io/*related changes