The Shipa Developer Hub

Welcome to the Shipa developer hub. You'll find comprehensive guides and documentation to help you start working with Shipa as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started    Changelog

Helm Values

For the self-hosted version of Shipa, the following shows an example of the vaules.yaml file to be used with the Helm chart. This example is from the 1.3.0 version of the chart.

# Default values for shipa.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

auth:
  dummyDomain: "@shipa.io"

shipaApi:
  port: 8080
  securePort: 8081
  etcdPort: 2379
  image: shipasoftware/api:v1.3.0
  pullPolicy: Always
  debug: false
  cnames: []
  allowRestartIngressControllers: true
  allowMigrationDowntime: true
  appAutoDiscoveryEnabled: true


license: ""

shipaCluster:
  # use debug logs in traefik ingress controller
  debug: false
  
  # kubernetes service type for traefik ingress controller (LoadBalancer/ClusterIP)
  serviceType: LoadBalancer
  
  # override traefik ingress controller ip address
  # ip: 10.100.10.11
  
  # use debug logs in istio ingress controller
  istioDebug: false
  
  # kubernetes service type for istio ingress controller (LoadBalancer/ClusterIP)
  istioServiceType: LoadBalancer
  
  # override istio ingress controller ip address
  # istioIp: 10.100.10.11

# populate with docker hub username to use authenticated user. Secrets should be added to cluster outside shipa helm chart
# imagePullSecrets: ""

service:
  nginx:
    enabled: true

    # kubernetes service type for nginx ingress (LoadBalancer/ClusterIP)
    serviceType: LoadBalancer

    # the following *NodePort values will be used only if serviceType is "NodePort"
    # apiNodePort specifies "nodePort" for shipa-api over http
    #apiNodePort: 32200
    # secureNodePort specifies "nodePort" for shipa-api over https
    #secureApiNodePort: 32201
    # etcdNodePort specifies "nodePort" for etcd
    #etcdNodePort: 32202
    # dockerRegistryNodePort specifies "nodePort" for shipa's docker registry
    #dockerRegistryNodePort: 32203

    # override nginx ingress controller ip address if its service type is ClusterIP
    #clusterIP: 10.100.10.10

    # override nginx ingress controller ip address if its service type is LoadBalancer
    #loadBalancerIP: 35.202.88.71

    # If set, defines nginx configuration as described in the manual:
    # https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap
    # there are default values, take a look at templates/nginx-configmap.yaml
    #config:
    #  proxy-body-size: "128M"


dashboard:
  enabled: true
  image: shipasoftware/dashboard:v1.3.0

etcd:
  debug: false
  persistence:
    ## Persistent Volume Storage Class
    ## If defined, storageClassName: <storageClass>
    ## If set to "-", storageClassName: "", which disables dynamic provisioning
    ## If undefined (the default) or set to null, no storageClassName spec is
    ##   set, choosing the default provisioner.
    ##
    ## storageClass: ""
    accessMode: 'ReadWriteOnce'
    size: 10Gi

postgres:
  persistence:
    ## Persistent Volume Storage Class
    ## If defined, storageClassName: <storageClass>
    ## If set to "-", storageClassName: "", which disables dynamic provisioning
    ## If undefined (the default) or set to null, no storageClassName spec is
    ##   set, choosing the default provisioner.
    ##
    ## storageClass: ""
    accessMode: 'ReadWriteOnce'
    size: 10Gi

cli:
  image: shipasoftware/cli:v1.3.0
  pullPolicy: Always

metrics:
  image: shipasoftware/metrics:v0.0.7
  pullPolicy: Always

  # Extra configuration to add to prometheus.yaml
  # extraPrometheusConfiguration: |
  #   remote_read:
  #      - url: http://localhost:9268/read
  #   remote_write:
  #      - url: http://localhost:9268/write
  extraPrometheusConfiguration:
  #password: hardcoded
  prometheusArgs: "--storage.tsdb.retention.time=1d"

busybody:
  image: shipasoftware/bb:v0.0.8

buildkit:
  # image specifies an image used to deploy a buildkit container.
  # every connected cluster has its own buildkit container.
  # if you update this value,
  # please don't forget to execute "shipa cluster-update" command for each cluster, shipa will update a buildkit container.
  image: moby/buildkit:v0.8.2

  # frontendSource is buildkit frontend
  # https://github.com/moby/buildkit/blob/master/frontend/dockerfile/docs/syntax.md
  frontendSource: docker/dockerfile


imageController:
  image: shipasoftware/image-controller:v0.0.13

shipaNodeTraefik:
  user: admin

platforms:
  # platformImageTag is the default tag for supported Shipa platform images 
  # Any Dockerfile provided by the user having base image from shipa registry
  # should have the supported platform image tag for compatibility with Shipa API.
  platformImageTag: v1.2

# --------------------------------------------------------------------------

nameOverride: ""
fullnameOverride: ""

serviceAccount:
  # Specifies whether a service account should be created
  create: true
  # The name of the service account to use.
  # If not set and create is true, a name is generated using the fullname template
  name:

rbac:
  enabled: true

# Connect your own instance of mongodb
externalMongodb:
  # url must follow Standard Connection String Format as described here: https://docs.mongodb.com/manual/reference/connection-string/#standard-connection-string-format
  # For a sharded cluster it should be a comma separated list of hosts: 
  # e.g. "mongos0.example.com:27017,mongos1.example.com:27017,mongos2.example.com:27017"
  # Due to some limitations of the dependencies, we currently do not support url with 'DNS Seed List Connection Format'.
  url: < database url >
  auth:
    username: < username >
    password: < password >
  # Enable/Disable TLS when connectiong to external DB instance.
  tls:
    enable: true

# tags are standard way to handle chart dependencies.
tags:
# Set defaultDB to 'false' when using external DB to not install default DB. 
# It will also prevent creating Persistent Volumes.
  defaultDB: true

# Default DB config
mongodb-replicaset:
  replicaSetName: rs0
  replicas: 1
  port: 27017
  auth:
    enabled: false
  installImage:
    name: k8s.gcr.io/mongodb-install
    tag: 0.6
    pullPolicy: IfNotPresent
  image:
    name: mongo
    tag: latest
    pullPolicy: IfNotPresent
  persistentVolume:
    ## Persistent Volume Storage Class
    ## If defined, storageClassName: <storageClass>
    ## If set to "-", storageClassName: "", which disables dynamic provisioning
    ## If undefined (the default) or set to null, no storageClassName spec is
    ##   set, choosing the default provisioner.
    ##
    ## storageClass: ""
    enabled: true
    size: 10Gi
  tls:
    enabled: false
  configmap:


docker-registry:
  persistence:
    accessMode: 'ReadWriteOnce'
    enabled: true
    size: 10Gi
    ## Persistent Volume Storage Class
    ## If defined, storageClassName: <storageClass>
    ## If set to "-", storageClassName: "", which disables dynamic provisioning
    ## If undefined (the default) or set to null, no storageClassName spec is
    ##   set, choosing the default provisioner.
    ##
    ## storageClass: ""
  service:
    port: 5000
  tlsSecretName: shipa-certificates
  configData:
    version: 0.1
    log:
      fields:
        service: registry
    storage:
      delete:
        enabled: true
      cache:
        blobdescriptor: inmemory
    http:
      # Don't change 5000 here
      addr: :5000
      headers:
        X-Content-Type-Options: [nosniff]
    health:
      storagedriver:
        enabled: true
        interval: 10s
        threshold: 3
    auth:
      token:
        # We inject realm as env variable
        service: shipa-registry
        issuer: shipa-token-issuer
        rootcertbundle: /etc/ssl/docker/ca.pem

shipaCloud:
  enabled: false
  sandboxDurationHours: 0
  sandboxTrialHours: 0

Updated about a month ago


Helm Values


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.