### Install and Start Development Server Source: https://github.com/headlamp-k8s/plugins/blob/main/tinkerbell/README.md Installs project dependencies and starts the development server for the Tinkerbell Headlamp plugin. ```bash npm install npm run start ``` -------------------------------- ### Install App Catalog Plugin Source: https://github.com/headlamp-k8s/plugins/blob/main/app-catalog/README.md Set up the App Catalog plugin by navigating to its directory, installing dependencies, and starting the development server. ```bash cd headlamp-k8s/plugins/app-catalog npm install npm start ``` -------------------------------- ### Install Dependencies and Run Plugin Source: https://github.com/headlamp-k8s/plugins/blob/main/kubeflow/src/components/spark/README.md Navigate to the Kubeflow plugin directory, install Node.js dependencies, and start the plugin development server. ```bash cd plugins/kubeflow npm install npm run start ``` -------------------------------- ### Install and Run Plugin Locally Source: https://github.com/headlamp-k8s/plugins/blob/main/cluster-api/README.md Clone the repository, install dependencies, and start the plugin for local development. Ensure you have Node.js and npm installed. ```bash git clone https://github.com/headlamp-k8s/plugins.git cd plugins/cluster-api npm install npm run start ``` -------------------------------- ### Install Dependencies (Dev Mode) Source: https://github.com/headlamp-k8s/plugins/blob/main/backstage/README.md Run this command to install all necessary dependencies before starting the plugin in development mode. ```bash npm install ``` -------------------------------- ### Start Minikube and Install Strimzi Source: https://github.com/headlamp-k8s/plugins/blob/main/strimzi/STORYBOOK_AND_LOCAL_TESTING.md Initializes Minikube, creates a namespace, and installs the Strimzi operator. Optionally, a Kafka cluster can be deployed for testing. ```bash minikube start kubectl create namespace kafka # Install Strimzi operator (example – adjust version/URL as needed) kubectl create -f 'https://strimzi.io/install/latest?namespace=kafka' -n kafka # Optional: deploy a Kafka cluster kubectl apply -f https://raw.githubusercontent.com/strimzi/strimzi-kafka-operator/main/examples/kafka/kafka-ephemeral.yaml -n kafka ``` -------------------------------- ### Set up Plugin Catalog Source: https://github.com/headlamp-k8s/plugins/blob/main/plugin-catalog/README.md Run these commands to install dependencies and start the Plugin Catalog within the Headlamp plugins directory. This enables the catalog feature in the sidebar. ```bash cd headlamp-k8s/plugins/plugin-catalog npm install npm start ``` -------------------------------- ### Run Kubeflow Training Plugin Source: https://github.com/headlamp-k8s/plugins/blob/main/kubeflow/src/components/training/README.md Installs dependencies and starts the Kubeflow training plugin in watch mode for auto-deployment. ```bash cd plugins/kubeflow npm install npm run start # Watches for changes, auto-deploys to ~/.config/Headlamp/plugins/ ``` -------------------------------- ### Run the Katib Plugin Source: https://github.com/headlamp-k8s/plugins/blob/main/kubeflow/src/components/katib/README.md Commands to install dependencies and start the Kubeflow Katib plugin locally. Navigate to the plugin's directory before running these commands. ```bash cd plugins/kubeflow npm install npm run start ``` -------------------------------- ### Install Notebook Controller Source: https://github.com/headlamp-k8s/plugins/blob/main/kubeflow/src/components/notebooks/README.md Installs the Kubeflow notebook controller using kustomize. This is required for notebooks to transition from 'Pending' to 'Running' state. ```bash kustomize build https://github.com/kubeflow/manifests/apps/jupyter/notebook-controller/upstream/overlays/kubeflow | kubectl apply -f - ``` -------------------------------- ### Install RabbitMQ via Helm for KinD (Helm 3) Source: https://github.com/headlamp-k8s/plugins/blob/main/keda/0.1.1-beta/README.md If running RabbitMQ on KinD, use this command to install it, enabling volume permissions to avoid potential issues. ```bash helm install rabbitmq --set auth.username=user --set auth.password=PASSWORD --set volumePermissions.enabled=true bitnami/rabbitmq --wait ``` -------------------------------- ### Run Storybook for Strimzi Plugin Source: https://github.com/headlamp-k8s/plugins/blob/main/strimzi/STORYBOOK_AND_LOCAL_TESTING.md Navigate to the Strimzi plugin directory, install dependencies, and start the Storybook development server. This allows for UI development without a running cluster. ```bash cd plugins/strimzi npm install npm run storybook ``` -------------------------------- ### Install Katib (AutoML) with Kubeflow Source: https://github.com/headlamp-k8s/plugins/blob/main/kubeflow/0.2.0-alpha/README.md Apply the Katib installation using kustomize, assuming you are in the root of the cloned kubeflow/manifests repository. This installs Katib with Kubeflow components. ```bash # From the root of the cloned kubeflow/manifests repository: kustomize build applications/katib/upstream/installs/katib-with-kubeflow | kubectl apply -f - ``` -------------------------------- ### Install Headlamp from Source Source: https://github.com/headlamp-k8s/plugins/blob/main/app-catalog/README.md Run the Headlamp app from the main branch. Ensure you are in the correct directory and have installed dependencies. ```bash cd headlamp-k8s/headlamp/app npm install npm start ``` -------------------------------- ### Run Kubeflow Plugin Development Server Source: https://github.com/headlamp-k8s/plugins/blob/main/kubeflow/src/components/pipelines/README.md Installs Node.js dependencies and starts the development server for the Kubeflow plugin. The server watches for changes and auto-deploys to Headlamp. ```bash cd plugins/kubeflow npm install npm run start # Watches for changes, auto-deploys to ~/.config/Headlamp/plugins/ ``` -------------------------------- ### Start Minikube Cluster Source: https://github.com/headlamp-k8s/plugins/blob/main/kyverno/docs/DEMO_SCRIPT.md Starts a Minikube cluster with specified resources and verifies cluster connectivity. ```bash minikube start --cpus=4 --memory=8192 kubectl cluster-info ``` -------------------------------- ### Install Kubeflow Pipelines (Cloud-Native Mode) Source: https://github.com/headlamp-k8s/plugins/blob/main/kubeflow/0.2.0-alpha/README.md Apply the Kubeflow Pipelines installation for cloud-native mode using kustomize. This command targets a specific overlay for cert-manager and multi-user Kubernetes-native setup. ```bash kustomize build applications/pipeline/upstream/env/cert-manager/platform-agnostic-multi-user-k8s-native | kubectl apply -f - ``` -------------------------------- ### Start Storybook for Katib Plugin Source: https://github.com/headlamp-k8s/plugins/blob/main/kubeflow/src/components/katib/README.md Launch Storybook to view and interact with Katib UI components. Ensure you are in the plugin's directory. ```bash cd plugins/kubeflow npm run storybook ``` -------------------------------- ### Manual Plugin Installation on Linux Source: https://github.com/headlamp-k8s/plugins/blob/main/strimzi/0.4.0-alpha/README.md Steps to manually install the plugin on Linux by extracting the release package to the Headlamp plugins directory. ```bash mkdir -p ~/.config/Headlamp/plugins/strimzi tar -xzf strimzi-headlamp-*.tar.gz -C ~/.config/Headlamp/plugins/strimzi --strip-components=1 ``` -------------------------------- ### Install RabbitMQ via Helm (Helm 3) Source: https://github.com/headlamp-k8s/plugins/blob/main/keda/0.1.1-beta/README.md Install RabbitMQ using the Bitnami Helm chart for Helm 3. Ensure you set the username and password. Use the `--wait` flag for confirmation. ```bash helm install rabbitmq --set auth.username=user --set auth.password=PASSWORD bitnami/rabbitmq --wait ``` -------------------------------- ### Apply Sample ResourceFlavor Manifests Source: https://github.com/headlamp-k8s/plugins/blob/main/kueue/README.md Apply sample ResourceFlavor manifests to a cluster where Kueue is installed. These examples are located in the test-files/deploy/ directory and are necessary to populate the plugin with data. ```bash kubectl apply -f test-files/deploy/resourceflavor-default.yaml kubectl apply -f test-files/deploy/resourceflavor-spot.yaml kubectl apply -f test-files/deploy/resourceflavor-topology.yaml ``` -------------------------------- ### Install Redis via Helm for KinD Source: https://github.com/headlamp-k8s/plugins/blob/main/keda/0.1.1-beta/README.md If running Redis on KinD, you may need to enable volume permissions by setting `volumePermissions.enabled=true` during installation. ```bash helm install redis --set auth.password=PASSWORD --set volumePermissions.enabled=true bitnami/redis --wait ``` -------------------------------- ### Install RabbitMQ via Helm (Helm 2) Source: https://github.com/headlamp-k8s/plugins/blob/main/keda/0.1.1-beta/README.md Install RabbitMQ using the Bitnami Helm chart for Helm 2. Ensure you set the username and password. Use the `--wait` flag for confirmation. ```bash helm install --name rabbitmq --set auth.username=user --set auth.password=PASSWORD bitnami/rabbitmq --wait ``` -------------------------------- ### Install KEDA with Prometheus Metrics Enabled Source: https://github.com/headlamp-k8s/plugins/blob/main/keda/0.1.2/README.md Use this Helm command to install KEDA with support for Prometheus metrics. Ensure Prometheus is installed in your cluster beforehand. ```bash helm install keda kedacore/keda \ --namespace keda \ --create-namespace \ --set prometheus.operator.enabled=true \ --set prometheus.operator.serviceMonitor.enabled=true \ --set prometheus.operator.serviceMonitor.interval="10s" \ --set prometheus.operator.serviceMonitor.additionalLabels.release="prometheus" ``` -------------------------------- ### Install Redis via Helm Source: https://github.com/headlamp-k8s/plugins/blob/main/keda/0.1.1-beta/README.md Install Redis using the Bitnami Redis Helm chart. Set the password and use the `--wait` flag for confirmation. ```bash helm install redis --set auth.password=PASSWORD bitnami/redis --wait ``` -------------------------------- ### Install Dependencies and Build Plugin Source: https://github.com/headlamp-k8s/plugins/blob/main/strimzi/0.4.0-alpha/README.md Commands to install project dependencies and build the Strimzi Headlamp plugin for development. ```bash # Install dependencies npm install # Build the plugin npm run build ``` -------------------------------- ### Install Kyverno using Helm Source: https://github.com/headlamp-k8s/plugins/blob/main/kyverno/docs/DEMO_SCRIPT.md Installs Kyverno into a Kubernetes cluster using Helm. It adds the Kyverno Helm repository, updates it, and installs Kyverno in the 'kyverno' namespace, waiting for pods to become ready. ```bash helm repo add kyverno https://kyverno.github.io/kyverno/ helm repo update helm install kyverno kyverno/kyverno -n kyverno --create-namespace # Wait for pods to be ready kubectl wait --for=condition=Ready pods --all -n kyverno --timeout=5m ``` -------------------------------- ### Example package.json for Headlamp Plugin Source: https://github.com/headlamp-k8s/plugins/blob/main/tools/releaser/README.md A sample `package.json` file demonstrating the required fields for a directory to be recognized as a Headlamp plugin. ```json { "name": "my-plugin", "version": "1.0.0", "scripts": { "package": "headlamp-plugin package" }, "keywords": ["headlamp-plugin"] } ``` -------------------------------- ### Version Verification Example Source: https://github.com/headlamp-k8s/plugins/blob/main/strimzi/README.md Illustrates the version consistency check between the git tag and package.json during the release workflow. ```bash # Tag: v0.1.1 # package.json: "version": "0.1.1" ✅ Match - workflow succeeds # Tag: v0.1.1 # package.json: "version": "0.1.0" ❌ Mismatch - workflow fails ``` -------------------------------- ### Install Kyverno Plugin on Linux Source: https://github.com/headlamp-k8s/plugins/blob/main/kyverno/README.md Use this command to install the Kyverno plugin on Linux systems by downloading and extracting the release archive. ```bash mkdir -p ~/.config/Headlamp/plugins/kyverno tar -xzf kyverno-*.tar.gz -C ~/.config/Headlamp/plugins/kyverno --strip-components=1 ``` -------------------------------- ### Install and Build Headlamp Plugin Source: https://github.com/headlamp-k8s/plugins/blob/main/argocd/README.md Installs project dependencies and builds the Headlamp plugin. This is a standard step in the development workflow. ```bash npm install npm run build ``` -------------------------------- ### Manual Plugin Installation on macOS Source: https://github.com/headlamp-k8s/plugins/blob/main/strimzi/0.4.0-alpha/README.md Steps to manually install the plugin on macOS by extracting the release package to the Headlamp plugins directory. ```bash mkdir -p ~/Library/Application\ Support/Headlamp/plugins/strimzi tar -xzf strimzi-headlamp-*.tar.gz -C ~/Library/Application\ Support/Headlamp/plugins/strimzi --strip-components=1 ``` -------------------------------- ### Start Minikube Cluster Source: https://github.com/headlamp-k8s/plugins/blob/main/strimzi/docs/MENTOR_DEMO_SCRIPT.md Starts a Minikube cluster with specified resources and checks cluster info. Ensure kubectl context points to the desired cluster. ```bash minikube start --cpus=4 --memory=8192 kubectl cluster-info ``` -------------------------------- ### Install Dependencies and Build Plugin Source: https://github.com/headlamp-k8s/plugins/blob/main/kueue/README.md Install project dependencies, build the plugin, run TypeScript compilation, and perform linting. These commands are essential for local development and ensuring code quality. ```bash npm install npm run build npm run tsc npm run lint ``` -------------------------------- ### Install KEDA with Prometheus Metrics Enabled Source: https://github.com/headlamp-k8s/plugins/blob/main/keda/0.1.1-beta/README.md Use this Helm command to install KEDA with Prometheus metrics export enabled. Ensure Prometheus is installed in your cluster and configure the service monitor interval and labels as needed. ```bash helm install keda kedacore/keda \ --namespace keda \ --create-namespace \ --set prometheus.operator.enabled=true \ --set prometheus.operator.serviceMonitor.enabled=true \ --set prometheus.operator.serviceMonitor.interval="10s" \ --set prometheus.operator.serviceMonitor.additionalLabels.release="prometheus" ``` -------------------------------- ### Install Plugin via npm Source: https://github.com/headlamp-k8s/plugins/blob/main/strimzi/0.4.0-alpha/README.md Use this command to install the Strimzi Headlamp plugin using npm. ```bash npm install strimzi-headlamp ``` -------------------------------- ### Start Plugin in Development Mode Source: https://github.com/headlamp-k8s/plugins/blob/main/karpenter/0.2.0/README.md Run this command to start the Karpenter plugin in development mode. This is typically used for local testing and development. ```bash npm start ``` -------------------------------- ### Install Kyverno Plugin on macOS Source: https://github.com/headlamp-k8s/plugins/blob/main/kyverno/README.md Use this command to install the Kyverno plugin on macOS systems by downloading and extracting the release archive. ```bash mkdir -p ~/Library/Application\ Support/Headlamp/plugins/kyverno tar -xzf kyverno-*.tar.gz -C ~/Library/Application\ Support/Headlamp/plugins/kyverno --strip-components=1 ``` -------------------------------- ### Run Headlamp Backend and Frontend Source: https://github.com/headlamp-k8s/plugins/blob/main/kubeflow/src/components/notebooks/README.md Starts the Headlamp backend and frontend development servers. Recommended for development to enable hot-reloading and debugging. ```bash # In the headlamp repo root: make run-backend # Starts backend on localhost:4466 make run-frontend # Starts frontend on localhost:3000 ``` -------------------------------- ### Run Plugin in Dev Mode Source: https://github.com/headlamp-k8s/plugins/blob/main/backstage/README.md Execute this command to start the Backstage plugin in development mode. ```bash npm run start ``` -------------------------------- ### Build Plugin and Install to Headlamp Plugins Directory (Linux) Source: https://github.com/headlamp-k8s/plugins/blob/main/strimzi/0.4.0-alpha/README.md Builds the plugin and copies the compiled output to the Headlamp plugins directory on Linux, including creating a required package.json. ```bash mkdir -p ~/.config/Headlamp/plugins/strimzi cp -r dist/* ~/.config/Headlamp/plugins/strimzi/ # Create package.json (required) cat > ~/.config/Headlamp/plugins/strimzi/package.json << 'EOF' { "name": "strimzi-headlamp", "version": "0.1.0", "main": "main.js" } EOF ``` -------------------------------- ### Build Plugin and Install to Headlamp Plugins Directory (macOS) Source: https://github.com/headlamp-k8s/plugins/blob/main/strimzi/0.4.0-alpha/README.md Builds the plugin and copies the compiled output to the Headlamp plugins directory on macOS, including creating a required package.json. ```bash mkdir -p ~/Library/Application\ Support/Headlamp/plugins/strimzi cp -r dist/* ~/Library/Application\ Support/Headlamp/plugins/strimzi/ # Create package.json (required) cat > ~/Library/Application\ Support/Headlamp/plugins/strimzi/package.json << 'EOF' { "name": "strimzi-headlamp", "version": "0.1.0", "main": "main.js" } EOF ``` -------------------------------- ### Run Headlamp Frontend in Development Mode Source: https://github.com/headlamp-k8s/plugins/blob/main/strimzi/0.4.0-alpha/README.md Starts the Headlamp frontend in development mode, setting an environment variable to point to the plugin's distribution directory. ```bash # In Headlamp's repository cd headlamp # Set the plugins directory to your plugin's dist folder export HEADLAMP_PLUGINS_DIR=/path/to/strimzi-headlamp/dist # Start Headlamp in development mode make run-frontend ``` -------------------------------- ### Run Headlamp Server with Strimzi Plugin Source: https://github.com/headlamp-k8s/plugins/blob/main/strimzi/STORYBOOK_AND_LOCAL_TESTING.md Starts the Headlamp server, specifying the directory containing the built Strimzi plugin. The server's URL should be used to access Headlamp, and the kubeconfig must be configured for Minikube. ```bash headlamp-server -plugins-dir=/path/to/plugins/strimzi/dist ``` -------------------------------- ### Deploy Sample Argo CD Application Resource Source: https://github.com/headlamp-k8s/plugins/blob/main/argocd/README.md Deploys a sample Argo CD Application resource to the cluster. This is part of the setup for using mock data for plugin development. ```bash kubectl apply -f test-files/deploy/application.yaml ``` -------------------------------- ### Build and Install Strimzi Plugin to Headlamp Desktop App Source: https://github.com/headlamp-k8s/plugins/blob/main/strimzi/README.md Build the plugin using npm and copy the distribution files to the Headlamp plugins directory. A package.json file is required for Headlamp to recognize the plugin. ```bash npm run build ``` ```bash mkdir -p ~/Library/Application\ Support/Headlamp/plugins/strimzi cp -r dist/* ~/Library/Application\ Support/Headlamp/plugins/strimzi/ ``` ```json { "name": "strimzi-headlamp", "version": "0.1.0", "main": "main.js" } ``` ```bash mkdir -p ~/.config/Headlamp/plugins/strimzi cp -r dist/* ~/.config/Headlamp/plugins/strimzi/ ``` ```json { "name": "strimzi-headlamp", "version": "0.1.0", "main": "main.js" } ``` -------------------------------- ### Install Kubeflow Notebooks CRDs and Controller Source: https://github.com/headlamp-k8s/plugins/blob/main/kubeflow/0.2.0-alpha/README.md Apply the Custom Resource Definitions and controller for Kubeflow Notebooks using kustomize. Ensure you have cloned the upstream Kubeflow manifests repository. ```bash kustomize build applications/jupyter/notebook-controller/upstream/crd/bases | kubectl apply -f - ``` ```bash kustomize build applications/jupyter/notebook-controller/upstream/overlays/kubeflow | kubectl apply -f - ``` -------------------------------- ### Navigate to test-files directory Source: https://github.com/headlamp-k8s/plugins/blob/main/cert-manager/0.1.1/README.md Change directory to access sample cert-manager resource configuration files. ```bash cd test-files ``` -------------------------------- ### Build the Plugin Source: https://github.com/headlamp-k8s/plugins/blob/main/backstage/0.1.0-beta-3/README.md Execute this command to build the Backstage plugin for deployment. ```bash npm run build ``` -------------------------------- ### Run Headlamp Server with Plugin Directory (Development) Source: https://github.com/headlamp-k8s/plugins/blob/main/strimzi/0.4.0-alpha/README.md Builds the plugin and then runs the Headlamp server, specifying the plugin's distribution directory. ```bash # Build your plugin npm run build # Run Headlamp server with plugins directory headlamp-server -plugins-dir=/path/to/strimzi-headlamp/dist ``` -------------------------------- ### HolmesGPT values.yaml Configuration Source: https://github.com/headlamp-k8s/plugins/blob/main/ai-assistant/README.md Example `values.yaml` file for configuring HolmesGPT, specifically for Azure OpenAI. Adjust `image`, `additionalEnvVars`, and `modelList` according to your chosen provider and settings. For other providers, consult the HolmesGPT installation documentation. ```yaml # values.yaml image: robustadev/holmes:0.19.1 additionalEnvVars: - name: AZURE_API_KEY value: '' - name: AZURE_API_BASE value: 'https://.openai.azure.com' - name: AZURE_API_VERSION value: '2024-02-15-preview' # Or load from secret: # - name: AZURE_API_KEY # valueFrom: # secretKeyRef: # name: holmes-secrets # key: azure-api-key # - name: AZURE_API_BASE # valueFrom: # secretKeyRef: # name: holmes-secrets # key: azure-api-base modelList: azure-gpt4: api_key: '{{ env.AZURE_API_KEY }}' model: azure/gpt-5 api_base: '{{ env.AZURE_API_BASE }}' api_version: '{{ env.AZURE_API_VERSION }}' ``` -------------------------------- ### Navigate to Test Files Directory Source: https://github.com/headlamp-k8s/plugins/blob/main/cert-manager/README.md Change the current directory to the test-files directory to access sample configurations. ```bash cd test-files ``` -------------------------------- ### Create Sample Katib Data Source: https://github.com/headlamp-k8s/plugins/blob/main/kubeflow/src/components/katib/README.md Creates a namespace and applies sample Katib Experiment YAML files for testing the plugin. An 'experiment.yaml' is used for standard testing, and 'experiment-failed.yaml' for error handling scenarios. ```bash kubectl create namespace kubeflow-user kubectl apply -f test_files/katib/experiment.yaml kubectl apply -f test_files/katib/experiment-failed.yaml ``` -------------------------------- ### Verify Kyverno CRDs Installation Source: https://github.com/headlamp-k8s/plugins/blob/main/kyverno/docs/DEMO_SCRIPT.md Checks if the necessary Kyverno Custom Resource Definitions (CRDs) are installed in the Kubernetes cluster. ```bash kubectl get crd | grep kyverno.io ``` -------------------------------- ### Install Headlamp Plugin Releaser Source: https://github.com/headlamp-k8s/plugins/blob/main/tools/releaser/README.md Install the plugin releaser tool locally. This makes the 'plugin-releaser' command available globally after linking. ```bash cd tools/releaser npm install npm run build npm link ``` -------------------------------- ### Build Plugin Source: https://github.com/headlamp-k8s/plugins/blob/main/backstage/README.md Execute this command to build the Backstage plugin for production. ```bash npm run build ``` -------------------------------- ### Develop Kyverno Plugin Source: https://github.com/headlamp-k8s/plugins/blob/main/kyverno/README.md Commands for setting up the development environment, building, and testing the Kyverno plugin for Headlamp. ```bash git clone https://github.com/headlamp-k8s/plugins.git cd plugins/kyverno npm install npm run start # Watch mode — load dist/ in Headlamp to see changes npm run build # Production build npm run lint # Check for lint errors npm run lint-fix # Auto-fix lint errors npm run format # Format code npm run tsc # TypeScript type-check ``` -------------------------------- ### Apply Sample Notebook Server Resource Source: https://github.com/headlamp-k8s/plugins/blob/main/kubeflow/src/components/notebooks/README.md Applies a sample Kubeflow Notebook resource, defining a Jupyter notebook server with specified image, ports, resources, and volumes. ```bash cat < ``` ```bash plugin-releaser bump prometheus 0.7.0 ``` ```bash plugin-releaser bump prometheus 0.7.0 --skip-install ``` ```bash plugin-releaser bump prometheus 0.7.0 --skip-commit ``` -------------------------------- ### Apply Sample Cert-Manager Configurations Source: https://github.com/headlamp-k8s/plugins/blob/main/cert-manager/README.md Apply the provided YAML configurations to your Kubernetes cluster to create sample cert-manager resources. ```bash kubectl apply -f clusterIssuer.yaml kubectl apply -f issuer.yaml kubectl apply -f certificate.yaml kubectl apply -f order.yaml kubectl apply -f app.yaml ``` -------------------------------- ### Install Katib CRDs Source: https://github.com/headlamp-k8s/plugins/blob/main/kubeflow/src/components/katib/README.md Installs the necessary Custom Resource Definitions (CRDs) for Katib Experiments, Trials, and Suggestions using kubectl. These are required for the Katib plugin to interact with Katib resources. ```bash kubectl apply -f https://raw.githubusercontent.com/kubeflow/manifests/master/apps/katib/upstream/components/crd/installs/katib.kubeflow.org_experiments.yaml kubectl apply -f https://raw.githubusercontent.com/kubeflow/manifests/master/apps/katib/upstream/components/crd/installs/katib.kubeflow.org_trials.yaml kubectl apply -f https://raw.githubusercontent.com/kubeflow/manifests/master/apps/katib/upstream/components/crd/installs/katib.kubeflow.org_suggestions.yaml ``` -------------------------------- ### Install Flux Plugin using EmptyDir Volume Source: https://github.com/headlamp-k8s/plugins/blob/main/flux/README.md An alternative configuration for installing the Flux Headlamp plugin using an EmptyDir volume for ephemeral shared storage between init containers and the main container. ```yaml config: pluginsDir: /build/plugins initContainers: - command: - /bin/sh - -c - mkdir -p /build/plugins && cp -r /plugins/* /build/plugins/ && chown -R 100:101 /build image: ghcr.io/headlamp-k8s/headlamp-plugin-flux:latest imagePullPolicy: Always name: headlamp-plugins securityContext: runAsNonRoot: false privileged: false runAsUser: 0 runAsGroup: 0 volumeMounts: - mountPath: /build/plugins name: headlamp-plugins volumeMounts: - mountPath: /build/plugins name: headlamp-plugins volumes: - name: headlamp-plugins emptyDir: {} ``` -------------------------------- ### Install Flux Plugin using HelmRelease Source: https://github.com/headlamp-k8s/plugins/blob/main/flux/README.md Use this HelmRelease manifest to install the Flux Headlamp plugin with your Headlamp deployment. Ensure the 'example.com' host and TLS secret name are updated to match your environment. ```yaml apiVersion: v1 kind: Namespace metadata: name: headlamp --- apiVersion: source.toolkit.fluxcd.io/v1beta1 kind: HelmRepository metadata: name: headlamp namespace: headlamp spec: interval: 1m0s timeout: 1m0s url: https://headlamp-k8s.github.io/headlamp/ --- apiVersion: helm.toolkit.fluxcd.io/v2beta1 kind: HelmRelease metadata: name: headlamp namespace: headlamp spec: chart: spec: chart: headlamp sourceRef: kind: HelmRepository name: headlamp version: "*" interval: 1m0s values: ingress: enabled: true ingressClassName: nginx annotations: cert-manager.io/cluster-issuer: letsencrypt-http01-nginx-issuer hosts: - host: example.com # Change me paths: - path: / type: ImplementationSpecific tls: - secretName: headlamp-tls hosts: - example.com # Change me config: pluginsDir: /build/plugins initContainers: - command: - /bin/sh - -c - mkdir -p /build/plugins && cp -r /plugins/* /build/plugins/ && chown -R 100:101 /build image: ghcr.io/headlamp-k8s/headlamp-plugin-flux:latest imagePullPolicy: Always name: headlamp-plugins securityContext: runAsNonRoot: false privileged: false runAsUser: 0 runAsGroup: 0 volumeMounts: - mountPath: /build/plugins name: headlamp-plugins persistentVolumeClaim: accessModes: - ReadWriteOnce enabled: true size: 1Gi volumeMounts: - mountPath: /build/plugins name: headlamp-plugins volumes: - name: headlamp-plugins persistentVolumeClaim: claimName: headlamp # The name of the Helm release ``` -------------------------------- ### Create Test Data for Training Resources Source: https://github.com/headlamp-k8s/plugins/blob/main/kubeflow/src/components/training/README.md Creates a namespace and applies local mock resources for TrainingRuntime, ClusterTrainingRuntime, and TrainJob. ```bash kubectl create namespace kubeflow-user ``` ```bash # Apply a local mock of a TrainingRuntime kubectl apply -f test_files/trainer/trainingruntime.yaml ``` ```bash # Apply a local mock of a ClusterTrainingRuntime kubectl apply -f test_files/trainer/clustertrainingruntime.yaml ``` ```bash # Apply a local mock of a TrainJob kubectl apply -f test_files/trainer/trainjob-running.yaml ``` -------------------------------- ### Clone Karpenter Plugin Repository Source: https://github.com/headlamp-k8s/plugins/blob/main/karpenter/0.2.0/README.md Use this command to clone the plugin repository. Ensure you have Git installed. ```bash git clone https://github.com/headlamp-k8s/plugins.git ``` -------------------------------- ### Check Strimzi CRDs Source: https://github.com/headlamp-k8s/plugins/blob/main/strimzi/docs/MENTOR_DEMO_SCRIPT.md Verifies if the Strimzi Kafka Custom Resource Definitions (CRDs) are installed in the Kubernetes cluster. ```bash kubectl get crd | grep kafka.strimzi.io ``` -------------------------------- ### Add Robusta Helm Repository Source: https://github.com/headlamp-k8s/plugins/blob/main/ai-assistant/README.md Add the Robusta Helm repository to your Helm configuration. This is a prerequisite for installing HolmesGPT. ```bash helm repo add robusta https://robusta-charts.storage.googleapis.com helm repo update ``` -------------------------------- ### Verify Pod Deployments Source: https://github.com/headlamp-k8s/plugins/blob/main/keda/0.1.2/README.md Check the status of deployed pods in the Kubernetes cluster to ensure RabbitMQ and Redis have started successfully. ```bash kubectl get pods NAME READY STATUS RESTARTS AGE rabbitmq-0 1/1 Running 0 3m3s redis-master-0 1/1 Running 0 2m45s redis-replica-0 1/1 Running 0 2m45s redis-replica-1 1/1 Running 0 2m30s ``` -------------------------------- ### List Available Plugins Source: https://github.com/headlamp-k8s/plugins/blob/main/tools/releaser/README.md Lists all available plugins. Use the `--changed` flag to see only plugins with changes since their last tag. ```bash plugin-releaser list ``` ```bash plugin-releaser list --changed ``` -------------------------------- ### Install Kubeflow Pipelines CRDs Source: https://github.com/headlamp-k8s/plugins/blob/main/kubeflow/src/components/pipelines/README.md Applies the necessary CRDs for Kubeflow Pipelines v2beta1 using Kustomize. No controllers are needed for UI development. ```bash # Apply Pipelines CRDs using Kustomize directly from upstream kubectl apply -k "https://github.com/kubeflow/pipelines/manifests/kustomize/cluster-scoped-resources?ref=2.2.0" ``` -------------------------------- ### Deploy Strimzi Plugin with Headlamp to Kubernetes Source: https://github.com/headlamp-k8s/plugins/blob/main/strimzi/README.md Build and package the plugin, extract it to a local plugins directory, and then update the Headlamp Kubernetes deployment manifest to mount this directory. Apply the manifest and access Headlamp via localhost. ```bash # Build and package the plugin npm run build npm run package # Extract to plugins directory mkdir -p plugins tar -xzf strimzi-headlamp-*.tar.gz -C plugins/ ``` ```yaml volumes: - name: plugins hostPath: path: /path/to/your/strimzi-headlamp/plugins # Update this path type: Directory ``` ```bash kubectl apply -f deploy/headlamp.yaml # Generate authentication token (valid 24h) kubectl -n headlamp create token headlamp --duration=24h ``` ```bash kubectl port-forward -n headlamp svc/headlamp 8080:80 # Access at http://localhost:8080 ``` ```bash # Rebuild and repackage npm run build && npm run package # Remove old version and extract new rm -rf plugins/strimzi-headlamp tar -xzf strimzi-headlamp-*.tar.gz -C plugins/ # Restart Headlamp deployment kubectl rollout restart deployment/headlamp -n headlamp # Clear browser cache: Cmd+Shift+R (macOS) or Ctrl+Shift+R (Linux) ``` ```bash kubectl delete -f deploy/headlamp.yaml ``` -------------------------------- ### Run Plugin Development Commands Source: https://github.com/headlamp-k8s/plugins/blob/main/volcano/0.2.0-beta/README.md Common development commands for the Volcano Headlamp plugin, including starting, type checking, linting, and building. ```bash npm run start npm run tsc npm run lint npm run build ``` -------------------------------- ### Run Unit Tests for Katib Plugin Source: https://github.com/headlamp-k8s/plugins/blob/main/kubeflow/src/components/katib/README.md Execute unit tests for the Katib plugin. Ensure you are in the correct directory before running. ```bash cd plugins/kubeflow npm test ``` -------------------------------- ### Install Kubeflow CRDs Source: https://github.com/headlamp-k8s/plugins/blob/main/kubeflow/src/components/notebooks/README.md Apply the necessary Custom Resource Definitions (CRDs) for Notebooks, Profiles, and PodDefaults to your Kubernetes cluster. Controllers are not required for UI development. ```bash # Notebooks CRD kubectl apply -f https://raw.githubusercontent.com/kubeflow/manifests/master/applications/jupyter/notebook-controller/upstream/crd/bases/kubeflow.org_notebooks.yaml # Profiles CRD kubectl apply -f https://raw.githubusercontent.com/kubeflow/manifests/master/applications/profiles/upstream/crd/bases/kubeflow.org_profiles.yaml # PodDefaults CRD kubectl apply -f https://raw.githubusercontent.com/kubeflow/manifests/master/applications/admission-webhook/upstream/base/crd.yaml ``` -------------------------------- ### Create Sample Spark Data Source: https://github.com/headlamp-k8s/plugins/blob/main/kubeflow/src/components/spark/README.md Apply a sample YAML file to create demo Spark data for testing the plugin's functionality. ```bash kubectl apply -f plugins/kubeflow/test_files/spark/demo.yaml ``` -------------------------------- ### Configure In-Cluster Helm Catalog Service Source: https://github.com/headlamp-k8s/plugins/blob/main/app-catalog/README.md Define a Kubernetes Service to be recognized as an in-cluster Helm chart repository. This example configures a service for a demo catalog. ```yaml apiVersion: v1 kind: Service metadata: name: demo-catalog namespace: test-catalog labels: catalog.headlamp.dev/is-catalog: '' annotations: catalog.headlamp.dev/name: demo-catalog catalog.headlamp.dev/protocol: helm catalog.headlamp.dev/displayName: My demo catalog spec: type: NodePort ports: - name: http port: 80 targetPort: 80 protocol: TCP ``` -------------------------------- ### Build and Package Strimzi Plugin Source: https://github.com/headlamp-k8s/plugins/blob/main/strimzi/0.4.0-alpha/README.md Commands to build the plugin, package it into a tarball, and extract it to the plugins directory for deployment. ```bash npm run build npm run package # Extract to plugins directory mkdir -p plugins tar -xzf strimzi-headlamp-*.tar.gz -C plugins/ ``` -------------------------------- ### Configure External ArtifactHub Catalog Service Source: https://github.com/headlamp-k8s/plugins/blob/main/app-catalog/README.md Define a Kubernetes Service to be recognized as an external application catalog source. This example configures a service to access artifacthub.io. ```yaml apiVersion: v1 kind: Service metadata: name: artifacthub-catalog namespace: artifacthub labels: catalog.headlamp.dev/is-catalog: '' annotations: catalog.headlamp.dev/name: artifacthub-catalog catalog.headlamp.dev/protocol: artifacthub catalog.headlamp.dev/uri: https://artifacthub.io spec: type: ExternalName externalName: artifacthub.io ports: - name: http port: 80 targetPort: 80 protocol: TCP ```