Skip to content

Latest commit

 

History

History
69 lines (50 loc) · 1.93 KB

File metadata and controls

69 lines (50 loc) · 1.93 KB

🏗️ Local Development

For development and testing, you can run Semaphore locally using Minikube:

Requirements

Quick Start

  1. Install and configure mkcert

    mkcert -install
    mkcert '*.semaphore.localhost'
  2. Start Minikube

    minikube start --cpus 8 --memory 16384 --profile semaphore
    minikube profile semaphore
    minikube ip  # Note this IP for later
    minikube addons enable ingress
    minikube tunnel  # Run in separate terminal
  3. Install Emissary Ingress CRDs

    kubectl apply -f https://app.getambassador.io/yaml/emissary/3.9.1/emissary-crds.yaml
    kubectl wait --timeout=90s --for=condition=available deployment emissary-apiext -n emissary-system
  4. Setup Helm

    cd helm-chart && make helm.create && cd ..
    helm repo add ambassador https://app.getambassador.io
    helm repo add semaphore https://renderedtext.github.io/helm-charts
  5. Configure and start

    Update skaffold.yaml with your minikube IP and certificates:

    • Set global.domain.ip to the output of minikube ip.
    • Set ingress.ssl.crt and ingress.ssl.key to the contents of the .pem and .key files generated by mkcert.
    skaffold dev  # Initial startup takes 30-60 minutes depending on your machine
  6. Access Semaphore

    # Get credentials
     kubectl get secret semaphore-authentication -n default -o jsonpath='{.data.ROOT_USER_EMAIL}' | base64 -d
    kubectl get secret semaphore-authentication -n default -o jsonpath='{.data.ROOT_USER_PASSWORD}' | base64 -d
    kubectl get secret semaphore-authentication -n default -o jsonpath='{.data.ROOT_USER_TOKEN}' | base64 -d

Open https://id.semaphore.localhost and log in!