{"id":14955866,"url":"https://github.com/opszero/tiphys","last_synced_at":"2026-03-16T05:18:41.970Z","repository":{"id":59255515,"uuid":"482112319","full_name":"opszero/tiphys","owner":"opszero","description":null,"archived":false,"fork":false,"pushed_at":"2024-09-17T18:39:58.000Z","size":509,"stargazers_count":6,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-20T21:09:11.358Z","etag":null,"topics":["django","helm","kubernetes","kubernetes-deployment","nodejs","rubyonrails"],"latest_commit_sha":null,"homepage":"https://www.opszero.com","language":"Smarty","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opszero.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["abhiyerra"],"custom":["https://www.opszero.com"]}},"created_at":"2022-04-15T23:49:20.000Z","updated_at":"2024-09-17T18:39:38.000Z","dependencies_parsed_at":"2023-09-27T03:08:29.001Z","dependency_job_id":"f078911c-db6f-45c8-830f-2f731c50a92e","html_url":"https://github.com/opszero/tiphys","commit_stats":{"total_commits":252,"total_committers":12,"mean_commits":21.0,"dds":0.5793650793650793,"last_synced_commit":"2835ae0127868144f9690c134a6b21e7f316c264"},"previous_names":[],"tags_count":75,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opszero%2Ftiphys","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opszero%2Ftiphys/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opszero%2Ftiphys/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opszero%2Ftiphys/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opszero","download_url":"https://codeload.github.com/opszero/tiphys/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235515428,"owners_count":19002481,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["django","helm","kubernetes","kubernetes-deployment","nodejs","rubyonrails"],"created_at":"2024-09-24T13:11:55.402Z","updated_at":"2025-10-06T09:30:32.201Z","avatar_url":"https://github.com/opszero.png","language":"Smarty","funding_links":["https://github.com/sponsors/abhiyerra","https://www.opszero.com"],"categories":[],"sub_categories":[],"readme":"# tiphys\n\nHelm Chart Abstraction for 80% of Apps. Standardized for NodeJS, Ruby on Rails, and Django\n\n# Usage\n\n\n```\nhelm repo add tiphys https://opszero.github.io/tiphys\nhelm repo update\nhelm upgrade --install yieldpay tiphys/tiphys -f ./charts/payroll.yaml --set image.repository=$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG\n```\n\n# Github Action To Create Helm chart using this repo\n\n```\njobs:\n  release:\n    runs-on: ubuntu-latest\n    steps:\n    - name: Release code in production\n      run: |\n        aws eks --region us-west-2 update-kubeconfig --name ops-prod\n        helm repo add tiphys https://opszero.github.io/tiphys\n        helm repo update\n        helm upgrade --install opsy \\\n          tiphys/tiphys \\\n          -n pump \\\n          --create-namespace \\\n          -f ./charts/prod.yml \\\n          --set defaultImage=$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG-api \\\n          --set apps[0].image=$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG-js \\\n```\n\n./stage.yaml\n\n```\n\n# Default image for all the apps. If an image isn't specified this one is used.\nname: yieldpayroll\ndefaultImage: nginx:latest\n\nsecretsAdditionalMounts:\n  \"/1password\": 1password # path, secret name\n\n# Override with: https://artifacthub.io/packages/helm/bitnami/redis\nredis:\n  enabled: true # Enable Redis\n  # master:\n  #  persistence:\n  #    size: 50Gi\n  # replica:\n  #  persistence:\n  #    size: 50Gi\n\ndatadog:\n  enabled: true # Enable Datadog\n  envName: develop\n  version: \"1.1\"\n\nenvRaw: # Additional environment variables added.\n  - name: DD_AGENT_HOST\n    valueFrom:\n      fieldRef:\n        fieldPath: status.hostIP\n\n# Creates Services of the type ExternalName\nexternals:\n  - name: sitemap\n    cname: \"some-sitemap.s3.amazon.com\"\n    ingress:\n      hosts:\n        - host: somesitemap.shopcanal.com\n          paths: [\"/(sitemap-.*)\"]\n          port: 8000\n  - name: elasticache\n    cname: \"elasticache.redis.amazon.com\"\n\ndefaultSecurityContext:\n  allowPrivilegeEscalation: false\n  runAsUser: 1001\n  runAsNonRoot: true\n  privileged: false\n  # capabilities:\n  #   drop:\n  #     - ALL\n  #   add: [\"NET_ADMIN\"]\n\nexternalEndpoints:\n  - name: redis\n    addresses:\n      - ip: 0.0.0.0\n    ports:\n      - port: 6379\n        protocol: TCP\n\napps:\n  - name: payroll\n    imagePullSecrets: # If there is secret needed for private docker registry\n     - name: docker-secret\n    secrets: # Accessible via /app-secrets/USERNAME\n      USERNAME: opszero\n    service:\n      enabled: true\n      type: ClusterIP\n      strategy: # Deployment Strategy\n        type: Recreate\n      ports:\n        - name: http\n          port: 3000\n          protocol: TCP\n        - name: com\n          port: 4000\n          protocol: TCP\n      ingress:\n        annotations:\n          nginx.ingress.kubernetes.io/rewrite-target: /$1\n        hosts:\n          - host: yieldpayroll.com\n            paths: [\"/\"]\n            port: 3000\n      resources:\n        requests:\n          memory: \"64Mi\"\n          cpu: \"250m\"\n        limits:\n          memory: \"128Mi\"\n          cpu: \"500m\"\n      nodeSelector: # Optional\n        nat: true\n      securityContext: # Optional.\n        privileged: true\n      autoscaling:\n        enabled: true\n        minReplicas: 2\n        maxReplicas: 4\n        targetCPUUtilizationPercentage: 75\n        targetMemoryUtilizationPercentage: 75\n      envRaw:\n        - name: DD_AGENT_HOST\n          valueFrom:\n            fieldRef:\n              fieldPath: status.hostIP\n    jobs:\n      - name: db-migrate\n        command: \"bundle exec rake db:migrate\"\n        annotations: # https://helm.sh/docs/topics/charts_hooks/\n          \"helm.sh/hook\": pre-install,pre-upgrade\n          \"helm.sh/hook-delete-policy\": before-hook-creation\n        resources:\n          requests:\n            memory: \"64Mi\"\n            cpu: \"250m\"\n          limits:\n            memory: \"128Mi\"\n            cpu: \"500m\"\n    cronjobs:\n      - name: hn\n        command: [\"bundle\", \"exec\", \"rails\", \"pay_people\"]\n        schedule: \"0 * * * *\"\n        timeZone: \"America/Los_Angeles\" # Optional\n        resources:\n          requests:\n            memory: \"64Mi\"\n            cpu: \"250m\"\n          limits:\n            memory: \"128Mi\"\n            cpu: \"500m\"\n  - name: payroll\n    image: foobar:latest\n    service:\n      enabled: true\n      type: ClusterIP\n      ports:\n        - name: http\n          port: 3000\n          protocol: TCP\n      command: [\"bundle\", \"exec\", \"rails\", \"server\"]\n      ingress:\n        hosts:\n          - host: yieldpayroll.com\n            paths: [\"/\"]\n            port: 3000\n      healthChecks:\n        lifecycle:\n          preStop:\n            exec:\n              command:\n                - /bin/sh\n                - -c\n                - sleep 60\n        livenessProbe:\n          failureThreshold: 15\n          initialDelaySeconds: 120\n          periodSeconds: 10\n          successThreshold: 1\n          timeoutSeconds: 30\n          httpGet:\n            path: /healthcheck\n            port: 3000\n        readinessProbe:\n          failureThreshold: 15\n          initialDelaySeconds: 120\n          periodSeconds: 10\n          successThreshold: 1\n          timeoutSeconds: 30\n          httpGet:\n            path: /healthcheck\n            port: 3000\n      autoscaling:\n        enabled: false\n      podAnnotations:\n        ad.datadoghq.com/celery.logs: '[{\"source\": \"celery\",\"service\": \"celery\"}]'\n    jobs:\n      - name: db-migrate\n        command: \"bundle exec rake db:migrate\"\n    cronjobs:\n      - name: hn\n        command: [\"bundle\", \"exec\", \"rails\", \"pay_people\"]\n        schedule: \"0 * * * *\"\n\nsecrets: # Accessible via /secrets/KEY_NAME\n  KEY_NAME: \"Value\"\n  KEY_NAME2: \"Value\"\n\nsecrets64: # Accessible via /secrets/KEY_NAME3\n  KEY_NAME3: \"dmFsdWUK\" # echo \"dmFsdWUK\" | base64 -d\n```\n\n# Helm Template\n\n```\nhelm template ./charts/tiphys -f ./stage.yaml\n```\n\n## Upgrades\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopszero%2Ftiphys","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopszero%2Ftiphys","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopszero%2Ftiphys/lists"}