Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Adds team-yoda to argocd apps required for kubeflow monitoring and updates istio grafana dashboards #41

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
resources:
- github.com/kubeflow/manifests/apps/centraldashboard/upstream/overlays/istio?ref=v1.8.1

patches:
- path: patches/configMapPatch.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
apiVersion: v1
data:
settings: |-
{
"DASHBOARD_FORCE_IFRAME": true
}
links: |-
{
"menuLinks": [
{
"type": "item",
"link": "/jupyter/",
"text": "Notebooks",
"icon": "book"
},
{
"type": "item",
"link": "/tensorboards/",
"text": "Tensorboards",
"icon": "assessment"
},
{
"type": "item",
"link": "/volumes/",
"text": "Volumes",
"icon": "device:storage"
},
{
"type": "item",
"link": "/kserve-endpoints/",
"text": "Models",
"icon": "kubeflow:models"
},
{
"type": "item",
"link": "/katib/",
"text": "Experiments (AutoML)",
"icon": "kubeflow:katib"
},
{
"type": "item",
"text": "Experiments (KFP)",
"link": "/pipeline/#/experiments",
"icon": "done-all"
},
{
"type": "item",
"link": "/pipeline/#/pipelines",
"text": "Pipelines",
"icon": "kubeflow:pipeline-centered"
},
{
"type": "item",
"link": "/pipeline/#/runs",
"text": "Runs",
"icon": "maps:directions-run"
},
{
"type": "item",
"link": "/pipeline/#/recurringruns",
"text": "Recurring Runs",
"icon": "device:access-alarm"
},
{
"type": "item",
"link": "/pipeline/#/artifacts",
"text": "Artifacts",
"icon": "editor:bubble-chart"
},
{
"type": "item",
"link": "/pipeline/#/executions",
"text": "Executions",
"icon": "av:play-arrow"
}
],
"externalLinks": [ ],
"quickLinks": [
{
"text": "Upload a pipeline",
"desc": "Pipelines",
"link": "/pipeline/"
},
{
"text": "View all pipeline runs",
"desc": "Pipelines",
"link": "/pipeline/#/runs"
},
{
"text": "Create a new Notebook server",
"desc": "Notebook Servers",
"link": "/jupyter/new?namespace=kubeflow"
},
{
"text": "View Katib Experiments",
"desc": "Katib",
"link": "/katib/"
}
],
"documentationItems": [
{
"text": "Getting Started with Kubeflow",
"desc": "Get your machine-learning workflow up and running on Kubeflow",
"link": "https://www.kubeflow.org/docs/started/getting-started/"
},
{
"text": "Kubeflow on AWS",
"desc": "Running Kubeflow on Amazon Elastic Kubernetes Service (Amazon EKS) and Amazon Web Services",
"link": "https://www.kubeflow.org/docs/aws/"
},
{
"text": "Amazon SageMaker Components for Kubeflow Pipelines",
"desc": "Create Machine Learning workflows to run on Amazon SageMaker from Kubeflow Pipelines",
"link": "https://awslabs.github.io/kubeflow-manifests/docs/amazon-sagemaker-integration/sagemaker-components-for-kubeflow-pipelines"
},
{
"text": "Amazon SageMaker Operator for Kubernetes (ACK)",
"desc": "Use SageMaker Operators for Kubernetes (ACK) to manage your SageMaker resources from your Kubernetes cluster directly",
"link": "https://awslabs.github.io/kubeflow-manifests/docs/amazon-sagemaker-integration/sagemaker-operators-ack"
},
{
"text": "Requirements for Kubeflow",
"desc": "Get more detailed information about using Kubeflow and its components",
"link": "https://www.kubeflow.org/docs/started/requirements/"
}
]
}
kind: ConfigMap
metadata:
name: centraldashboard-config
namespace: kubeflow
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
# Configuration file for the Jupyter UI.
#
# Each Jupyter UI option is configured by two keys: 'value' and 'readOnly'
# - The 'value' key contains the default value
# - The 'readOnly' key determines if the option will be available to users
#
# If the 'readOnly' key is present and set to 'true', the respective option
# will be disabled for users and only set by the admin. Also when a
# Notebook is POSTED to the API if a necessary field is not present then
# the value from the config will be used.
#
# If the 'readOnly' key is missing (defaults to 'false'), the respective option
# will be available for users to edit.
#
# Note that some values can be templated. Such values are the names of the
# Volumes as well as their StorageClass
spawnerFormDefaults:
image:
# The container Image for the user's Jupyter Notebook
value: public.ecr.aws/kubeflow-on-aws/notebook-servers/jupyter-tensorflow:2.12.0-cpu-py310-ubuntu20.04-ec2-v1.0
# The list of available standard container Images
options:
- kubeflownotebookswg/jupyter-scipy:v1.7.0
- public.ecr.aws/kubeflow-on-aws/notebook-servers/jupyter-tensorflow:2.12.0-gpu-py310-cu118-ubuntu20.04-ec2-v1.0
- public.ecr.aws/kubeflow-on-aws/notebook-servers/jupyter-tensorflow:2.12.0-cpu-py310-ubuntu20.04-ec2-v1.0
- public.ecr.aws/kubeflow-on-aws/notebook-servers/jupyter-pytorch:2.0.0-gpu-py310-cu118-ubuntu20.04-ec2-v1.0
- public.ecr.aws/kubeflow-on-aws/notebook-servers/jupyter-pytorch:2.0.0-cpu-py310-ubuntu20.04-ec2-v1.0
imageGroupOne:
# The container Image for the user's Group One Server
# The annotation `notebooks.kubeflow.org/http-rewrite-uri: /`
# is applied to notebook in this group, configuring
# the Istio rewrite for containers that host their web UI at `/`
value: kubeflownotebookswg/codeserver-python:v1.7.0
# The list of available standard container Images
options:
- kubeflownotebookswg/codeserver-python:v1.7.0
imageGroupTwo:
# The container Image for the user's Group Two Server
# The annotation `notebooks.kubeflow.org/http-rewrite-uri: /`
# is applied to notebook in this group, configuring
# the Istio rewrite for containers that host their web UI at `/`
# The annotation `notebooks.kubeflow.org/http-headers-request-set`
# is applied to notebook in this group, configuring Istio
# to add the `X-RStudio-Root-Path` header to requests
value: kubeflownotebookswg/rstudio-tidyverse:v1.7.0
# The list of available standard container Images
options:
- kubeflownotebookswg/rstudio-tidyverse:v1.7.0
# If true, hide registry and/or tag name in the image selection dropdown
hideRegistry: true
hideTag: false
allowCustomImage: true
# If true, users can input custom images
# If false, users can only select from the images in this config
imagePullPolicy:
# Supported values: Always, IfNotPresent, Never
value: IfNotPresent
readOnly: false
cpu:
# CPU for user's Notebook
value: '0.5'
# Factor by with to multiply request to calculate limit
# if no limit is set, to disable set "none"
limitFactor: "1.2"
readOnly: false
memory:
# Memory for user's Notebook
value: 1.0Gi
# Factor by with to multiply request to calculate limit
# if no limit is set, to disable set "none"
limitFactor: "1.2"
readOnly: false
environment:
value: {}
readOnly: false
workspaceVolume:
# Workspace Volume to be attached to user's Notebook
# If you don't want a workspace volume then delete the 'value' key
value:
mount: /home/jovyan
newPvc:
metadata:
name: '{notebook-name}-workspace'
spec:
resources:
requests:
storage: 10Gi
accessModes:
- ReadWriteOnce
readOnly: false
dataVolumes:
# List of additional Data Volumes to be attached to the user's Notebook
value: []
# For example, a list with 2 Data Volumes:
# value:
# - mount: /home/jovyan/datavol-1
# newPvc:
# metadata:
# name: '{notebook-name}-datavol-1'
# spec:
# resources:
# requests:
# storage: 5Gi
# accessModes:
# - ReadWriteOnce
# - mount: /home/jovyan/datavol-1
# existingSource:
# persistentVolumeClaim:
# claimName: test-pvc
readOnly: false
gpus:
# Number of GPUs to be assigned to the Notebook Container
value:
# values: "none", "1", "2", "4", "8"
num: "none"
# Determines what the UI will show and send to the backend
vendors:
- limitsKey: "nvidia.com/gpu"
uiName: "NVIDIA"
- limitsKey: "amd.com/gpu"
uiName: "AMD"
# Values: "" or a `limits-key` from the vendors list
vendor: ""
readOnly: false
affinityConfig:
# If readonly, the default value will be the only option
# value is a list of `configKey`s that we want to be selected by default
value: ""
# The list of available affinity configs
options: []
#options:
# - configKey: "exclusive__n1-standard-2"
# displayName: "Exclusive: n1-standard-2"
# affinity:
# # (Require) Node having label: `node_pool=notebook-n1-standard-2`
# nodeAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# nodeSelectorTerms:
# - matchExpressions:
# - key: "node_pool"
# operator: "In"
# values:
# - "notebook-n1-standard-2"
# # (Require) Node WITHOUT existing Pod having label: `notebook-name`
# podAntiAffinity:
# requiredDuringSchedulingIgnoredDuringExecution:
# - labelSelector:
# matchExpressions:
# - key: "notebook-name"
# operator: "Exists"
# namespaces: []
# topologyKey: "kubernetes.io/hostname"
#readOnly: false
tolerationGroup:
# The default `groupKey` from the options list
# If readonly, the default value will be the only option
value: ""
# The list of available tolerationGroup configs
options: []
#options:
# - groupKey: "group_1"
# displayName: "Group 1: description"
# tolerations:
# - key: "key1"
# operator: "Equal"
# value: "value1"
# effect: "NoSchedule"
# - key: "key2"
# operator: "Equal"
# value: "value2"
# effect: "NoSchedule"
readOnly: false
shm:
value: true
readOnly: false
configurations:
# List of labels to be selected, these are the labels from PodDefaults
# value:
# - add-aws-secret
# - default-editor
value: []
readOnly: false
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
resources:
- github.com/kubeflow/manifests/apps/jupyter/jupyter-web-app/upstream/overlays/istio?ref=v1.8.1
configMapGenerator:
- name: config
behavior: merge
files:
- configs/spawner_ui_config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
namespace: kubeflow
resources:
- github.com/kubeflow/manifests/apps/jupyter/notebook-controller/upstream/overlays/kubeflow?ref=v1.8.1
configMapGenerator:
- name: config
behavior: merge
env: params.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
ENABLE_CULLING=false
CULL_IDLE_TIME=30
IDLENESS_CHECK_PERIOD=5
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
apiVersion: kubeflow.org/v1alpha1
kind: PodDefault
metadata:
name: access-ml-pipeline
namespace: kubeflow-user-example-com
spec:
desc: Allow access to Kubeflow Pipelines
selector:
matchLabels:
access-ml-pipeline: "true"
volumes:
- name: volume-kf-pipeline-token
projected:
sources:
- serviceAccountToken:
path: token
expirationSeconds: 7200
audience: pipelines.kubeflow.org
volumeMounts:
- mountPath: /var/run/secrets/kubeflow/pipelines
name: volume-kf-pipeline-token
readOnly: true
env:
- name: KF_PIPELINES_SA_TOKEN_PATH
value: /var/run/secrets/kubeflow/pipelines/token
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
resources:
- kubeflow-pod-default.yaml
Loading