Sign inSign up

balantj/semaphore

By balantj

Updated over 3 years ago

Image
0

68

balantj/semaphore repository overview

To deploy on kubernetes
  • Use this yaml to deploy in K3S kubernetes flavor on ARM64:
apiVersion: v1
kind: Namespace
metadata:
  name: semaphore

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: semaphore-mysql
  namespace: semaphore
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 100Mi
status: {}

---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: mysql
  name: mysql
  namespace: semaphore
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysql
  strategy:
    type: Recreate
  template:
    metadata:
      labels:

        app: mysql
    spec:
      containers:
        - env:
            - name: MYSQL_DATABASE
              value: semaphore
            - name: MYSQL_PASSWORD
              value: semaphore
            - name: MYSQL_RANDOM_ROOT_PASSWORD
              value: "yes"
            - name: MYSQL_USER
              value: semaphore
          image: mysql:8.0
          name: mysql
          ports:
            - containerPort: 3306
          resources: {}
          volumeMounts:
            - mountPath: /var/lib/mysql
              name: semaphore-mysql
      hostname: mysql
      restartPolicy: Always
      volumes:
        - name: semaphore-mysql
          persistentVolumeClaim:
            claimName: semaphore-mysql
status: {}

---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: mysql
  name: mysql
  namespace: semaphore
spec:
  ports:
    - name: "3306"
      port: 3306
      targetPort: 3306
  selector:
    app: mysql
status:
  loadBalancer: {}

---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: semaphore
  name: semaphore
  namespace: semaphore
spec:
  replicas: 1
  selector:
    matchLabels:
      app: semaphore
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: semaphore
    spec:
      containers:
        - env:
            - name: SEMAPHORE_ACCESS_KEY_ENCRYPTION
              value: gs72mPntFATGJs9qK0pQ0rKtfidlexiMjYCH9gWKhTU=
            - name: SEMAPHORE_ADMIN
              value: admin
            - name: SEMAPHORE_ADMIN_EMAIL
              value: admin@localhost
            - name: SEMAPHORE_ADMIN_NAME
              value: admin
            - name: SEMAPHORE_ADMIN_PASSWORD
              value: changeme
              #valueFrom:
              #  secretKeyRef:
              #    name: mysqlpwd
              #    key: password
            - name: SEMAPHORE_DB
              value: semaphore
            - name: SEMAPHORE_DB_DIALECT
              value: mysql
            - name: SEMAPHORE_DB_HOST
              value: mysql
            - name: SEMAPHORE_DB_PASS
              value: semaphore
            - name: SEMAPHORE_DB_PORT
              value: "3306"
            - name: SEMAPHORE_DB_USER
              value: semaphore
            - name: SEMAPHORE_LDAP_ACTIVATED
              value: "no"
            - name: SEMAPHORE_LDAP_DN_BIND
              value: uid=bind_user,cn=users,cn=accounts,dc=local,dc=shiftsystems,dc=net
            - name: SEMAPHORE_LDAP_DN_SEARCH
              value: dc=local,dc=example,dc=com
            - name: SEMAPHORE_LDAP_HOST
              value: dc01.local.example.com
            - name: SEMAPHORE_LDAP_NEEDTLS
              value: "yes"
            - name: SEMAPHORE_LDAP_PASSWORD
              value: ldap_bind_account_password
            - name: SEMAPHORE_LDAP_PORT
              value: "636"
            - name: SEMAPHORE_LDAP_SEARCH_FILTER
              value: (&(uid=%s)(memberOf=cn=ipausers,cn=groups,cn=accounts,dc=local,dc=example,dc=com))
            - name: SEMAPHORE_PLAYBOOK_PATH
              value: /tmp/semaphore/
            - name: WEB_HOST
              value: /semaphore/
          #image: semaphoreui/semaphore:latest ### for X86_64
          image: balantj/semaphore:arm64 ### for arm64
          name: semaphore
          ports:
            - containerPort: 3000
          resources: {}
      restartPolicy: Always
status: {}

---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: semaphore
  name: semaphore
  namespace: semaphore
spec:
  ports:
    - name: http
      port: 80
      targetPort: 3000
  selector:
    app: semaphore
status:
  loadBalancer: {}

---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: semaphore-ingress
  namespace: semaphore
  annotations:
    kubernetes.io/ingress.class: "traefik"
    cert-manager.io/cluster-issuer: self-signed-issuer
    traefik.ingress.kubernetes.io/router.tls: "true"
status:
  loadBalancer:
    ingress:
      - ip: 192.168.223.95
spec:
  ingressClassName: traefik
  tls:
  - hosts:
    - semaphore.example.local
    secretName: semaphore-tls
  rules:
    - host: semaphore.example.local
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: semaphore
                port:
                  number: 80

Tag summary

Content type

Image

Digest

sha256:a496c1ade

Size

116.5 MB

Last updated

over 3 years ago

docker pull balantj/semaphore:arm64