This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Getting Started

What do you need to get started with Jumpstarter?

This section covers the basics of getting started with jumpstarter

1 - Installation

This section contains the installation instructions for the Jumpstarter distributed service, and the python framework.

Installing the distributed service

When building a distributed environment with Jumpstarter, you will need to install the Jumpstarter distributed service. This service is responsible for managing the devices, and the communication between the devices and and clients.

kind create cluster
helm upgrade jumpstarter --install oci://quay.io/jumpstarter-dev/helm/jumpstarter \
    --create-namespace --namespace jumpstarter-lab \
    --set global.baseDomain=devel.jumpstarter.dev \
    --set global.metrics.enabled=true \
    --set jumpstarter-controller.grpc.mode=route \
    --version=0.0.4-24-g1a8a159
kind create cluster
helm upgrade jumpstarter --install oci://quay.io/jumpstarter-dev/helm/jumpstarter \
    --create-namespace --namespace jumpstarter-lab \
    --set global.baseDomain=devel.jumpstarter.dev \
    --set global.metrics.enabled=true # disable if metrics not available \
    --set jumpstarter-controller.grpc.mode=ingress \
    --version=0.0.4-24-g1a8a159

Create namespace

First, we must create a namespace for the Jumpstarter installation. This namespace should be labeled with argocd.argoproj.io/managed-by=to allow ArgoCD to manage the resources in the namespace.
In this case, using the default openshift-gitops ArgoCD deployment, the command would be:
kubectl create namespace jumpstarter-lab
kubectl label namespace jumpstarter-lab argocd.argoproj.io/managed-by=openshift-gitops

Application

jumpstarter-controller.controllerSecret and jumpstarter-controller.routerSecret are secrets that are used to secure the authentication between clients and the jumpstarter elements. These secrets should be unique and not shared between installations. Helm installation can auto-generate values for these, but with ArgoCD such mechanism doesn't work. You need to manually create these secrets in the namespace where the jumpstarter is installed.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: jumpstarter
  namespace: openshift-gitops
spec:
  destination:
    name: in-cluster
    namespace: jumpstarter-lab
  project: default
  source:
    chart: jumpstarter
    helm:
      parameters:
      - name: global.baseDomain
        value: devel.jumpstarter.dev
      - name: global.metrics.enabled
        value: "true"
      - name: jumpstarter-controller.controllerSecret
        value: "pick-a-secret-DONT-USE-THIS-DEFAULT"
      - name: jumpstarter-controller.routerSecret
        value: "again-pick-a-secret-DONT-USE-THIS-DEFAULT"
      - name: jumpstarter-controller.grpc.mode
        value: "route"
    repoURL: quay.io/jumpstarter-dev/helm
    targetRevision: "0.0.4-24-g1a8a159"

Note: CRDs

ArgoCD needs to be able to manage the CRDs that Jumpstarter uses. This is done by creating a ClusterRole and ClusterRoleBinding that allows the ArgoCD application controller to manage the CRDs. An alternative to this is to manually create and update the CRDs that jumpstarter uses.
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  annotations:
    argocds.argoproj.io/name: openshift-gitops
    argocds.argoproj.io/namespace: openshift-gitops
  name: openshift-gitops-argocd-appcontroller-crd
rules:
- apiGroups:
  - 'apiextensions.k8s.io'
  resources:
  - 'customresourcedefinitions'
  verbs:
  - '*'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  annotations:
    argocds.argoproj.io/name: openshift-gitops
    argocds.argoproj.io/namespace: openshift-gitops
  name: openshift-gitops-argocd-appcontroller-crd
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: openshift-gitops-argocd-appcontroller-crd
subjects:
- kind: ServiceAccount
  name: openshift-gitops-argocd-application-controller
  namespace: openshift-gitops
Kind is a tool for running local Kubernetes clusters using Podman or Docker container “nodes”.
kind create cluster
helm upgrade jumpstarter --install oci://quay.io/jumpstarter-dev/helm/jumpstarter \
    --create-namespace --namespace jumpstarter-lab \
    --set global.baseDomain=devel.jumpstarter.dev \
    --set global.metrics.enabled=false \
    --set jumpstarter-controller.grpc.mode=ingress \
    --version=0.0.4-24-g1a8a159

Where can I find help?

Look at the Community page for more information on how to get in touch with the Jumpstarter developers, we have a Matrix channel where we’ll be happy to help you with your installation.

2 - Concepts

In this section you can find a more detailed explanation of the concepts used in the Jumpstarter project.

Please refer to the Jumpstarter documentation glossary for details.