Sign inSign up

d10s0vsky/sld-api

By d10s0vsky

•Updated 12 months ago

API Stack Lifecycle Deployment

Image
0

50K+

d10s0vsky/sld-api repository overview

⁠Dashboard Stack Lifecycle Deployment

⁠OpenSource solution that defines and manages the complete lifecycle of resources used and provisioned into a cloud!

Stack-Lifecycle-Deployment⁠

⁠Setting vars support API

⁠Despliegue servicio api backend

El servicio api backend soporta los siguientes parametros como variables de entorno:

SQLALCHEMY_DATABASE_URL='mysql://root:123@db/restapi' # Tipo de de base de datos:usuario:password@db/"nombre de la base de datos"
SLD_SECRET_KEY="09d25e094faa6ca2556c818166b7a9563b93f7099f6f0f4caa6cf63b88e8d3e7" # llave que se encargara de cifrar los diferentes secretos
ALGORITHM = "HS256" # Tipo de algortimo de cifrado
SLD_PASSWORD_LEN='8' # Numero de caracteres que SLD solicitara a los usuarios para las password
SLD_ROLLBACK=False # Puede habilitar o desabilitar el tipo de estrategi de resiliencia en el despliegue , esto anulo el patron de reintento.
SLD_DEPLOY_TMOUT=7200 # Tiempo limite en segundos que un despliegue generara una exepcion del tipo timeout
SLD_GIT_TMOUT=5 # Tiempo limite en segundos sld esperara para hacer un pull de un repositorio git
BACKEND_USER="" # Usuario redis
BACKEND_PASSWD="" # Password redis
BACKEND_SERVER="redis" #parametros para redis usuario , password y hostname del servicio
SLD_TASK_MAX_RETRY=1 # Numero de reintentos despues de un fallo en un despliegue
SLD_REMOTE_STATE="http://remote-state:8080" # Hostname y puerto del servicio para programar el ciclo de vida de un despliegue
SLD_API_SERVER_USER='schedule' # Usuario bot con el cual ervicio para programar el ciclo de vida de un despliegue se logueara
SLD_API_SERVER_PASSWORD='Schedule1@local' # Password  con el cual ervicio para programar el ciclo de vida de un despliegue se logueara
⁠Ejemplo de deployment kubernetes

cambiar por la imgen correspondiente o manejarlo desde el fichero kustomization.yaml

kind: Deployment
metadata:
  name: api-backend
  labels:
    name: api-backend
spec:
  replicas: 2  
  selector:
    matchLabels:
      name: api-backend
  template:
    metadata:
      labels:
        name: api-backend
    spec:
      topologySpreadConstraints:
      - maxSkew: 1
        topologyKey: kubernetes.io/hostname
        whenUnsatisfiable: DoNotSchedule
        labelSelector:
          matchLabels:
            name: api-backend
      subdomain: primary
      containers:
        - name: api-backend
          image: d10s0vsky/sld-api:2.1.1
          imagePullPolicy: Always
          command: ["python3", "-m", "uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000", "--workers", "1"]
          ports:
            - containerPort: 8000
          livenessProbe:
            httpGet:
              path: /api/v1/
              port: 8000
              httpHeaders:
              - name: status
                value: healthy
            initialDelaySeconds: 60
            periodSeconds: 60
          env:
          - name: SQLALCHEMY_DATABASE_URL
            valueFrom:
              secretKeyRef:
                name: db-secret
                key: .db-secret
          - name: BROKER_USER
            valueFrom:
              secretKeyRef:
                name: rabbitmq-secret
                key: .rabbitmq-username
          - name: BROKER_PASSWD
            valueFrom:
              secretKeyRef:
                name: rabbitmq-secret
                key: .rabbitmq-password
          resources:
            limits:
              memory: 800Mi
              cpu: 1
            requests:
              memory: 300Mi
              cpu: 100m

⁠Ejemplo para exponer como servicio el deployment
apiVersion: v1
kind: Service
metadata:
  name: api-backend
spec:
  selector:
    name: api-backend
  ports:
    - name: http-api
      port: 8000
      targetPort: 8000

Tag summary

Content type

Image

Digest

sha256:71154f44c…

Size

130.7 MB

Last updated

12 months ago

docker pull d10s0vsky/sld-api