Skip to content

Deploy and Manage Ever® Demand™ Platform on Clouds with Pulumi

License

Notifications You must be signed in to change notification settings

ever-co/ever-demand-pulumi

Repository files navigation

Deploy and Manage Ever Platform on Clouds

Pulumi

Introduction

IMPORTANT: WIP, NOT READY YET FOR ANY USE!

  • This projects uses Pulumi to easy and quickly deploy Ever Platform into Clouds with single command (pulumi up --yes).
  • It currently supports AWS EKS Kubernetes Clusters (for Angular / Ionic apps and Backend Core Apis), Application Load Balancers and Serverless PostgreSQL DB deployments.

Quick start

  • Setup Docker
  • Setup eksctl (if production k8s deployment required)
  • Setup Helm (if production k8s deployments required). Don't forget to run helm init!
  • Setup Pulumi
  • Setup AWS CLI
  • Configure cloud credentials locally with aws configure and create AWS profile: ever (or replace AWS profile name in Pulumi.*.yaml files)
  • Change (optionally) Pulumi Stack with pulumi stack select dev, where dev is stack name.
  • Deploy to Cloud: pulumi up --yes
  • Enjoy

Note: different stacks may use different services, e.g. AWS EKS (k8s) for prod (production) stack, AWS ECS Fargate for demo stack or AWS ECS container instances (with EC2) for dev stack.

Links:

Implementation

Implementation currently based on Pulumi libraries specific to AWS Cloud. That's why no other Clouds currently supported, but it should be possible at some point to rewrite code using Pulumi Cloud-Agnostic Packages, see https://github.com/pulumi/pulumi-cloud, https://www.pulumi.com/docs/reference/pkg/nodejs/pulumi/cloud, https://www.pulumi.com/docs/tutorials/cloudfx, etc. (AWS and Azure clouds should be supported in such case)

Note: for some of AWS specific features (if Pulumi does not support them yet) we can use AWS CDK, see https://docs.aws.amazon.com/en_pv/cdk/latest/guide/home.html

Branches, Pulumi Stacks and Environments

We have 2 branches for Ever Pulumi repo:

  • master branch for deployments to prod, dev and demo environments
  • develop branch for Development only, without any deployments

Before Ever SaaS Platform will be ready, we just deploy current Ever Platform to all environments.

Each Github branch may correspond to separate Pulumi Stacks in the future. Mapping defined in the ./pulumi/ci.json file.

In addition, Ever Platform build might use different settings for each environment (e.g NODE_ENV set to production for production env)

TODO

See also https://www.pulumi.com/docs/guides/continuous-delivery/circleci and https://circleci.com/orbs/registry/orb/pulumi/pulumi

  • Security Group of Fargate Service should be added to RDS Cluster for full access to RDS DB. Note: it should be done this way: first we create such security group, next we use it when create RDS Cluster and next we use it when create Fargate Cluster

  • Must READ: https://www.pulumi.com/docs/guides/k8s-the-prod-way (how to setup k8s for production with Pulumi)

Pulumi related FAQ

  • Removed resource manually in the Cloud? Run pulumi refresh

Pulumi related Open-Source projects and Examples

k8s

  • Run proxy: kubectl proxy
  • Get all running pods: kubectl get pods -A

Contribute

  • Please give us ⭐ on Github, it helps!
  • You are more than welcome to submit feature requests
  • Pull requests are always welcome! Please base pull requests against the develop branch and follow the contributing guide.

Collaborators and Contributors

Development Team

Core

Contributors

Contact Us

Security

Ever Platform follows good security practices, but 100% security cannot be guaranteed in any software!
Ever Platform is provided AS IS without any warranty. Use at your own risk!
See more details in the LICENSE.md.

In a production setup, all client-side to server-side (backend, APIs) communications should be encrypted using HTTPS/WSS/SSL (REST APIs, GraphQL endpoint, Socket.io WebSockets, etc.).

License

This software is available under GNU General Public License v3.0

This program is free software: you can redistribute it and/or modify it under the terms of the corresponding licenses described in the LICENSE files located in software sub-folders and under the terms of licenses described in individual files.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

You should have received a copy of the relevant GNU Licenses along with this program. If not, see http://www.gnu.org/licenses/.

FOSSA Status

Trademarks

Ever® is a registered trademark of Ever Co. LTD.
Ever® Platform™, Ever® Platform Community™, Ever® Platform Small Business™ and Ever® Platform Enterprise™ are all trademarks of Ever Co. LTD.

The trademarks may only be used with the written permission of Ever Co. LTD. and may not be used to promote or otherwise market competitive products or services.

All other brand and product names are trademarks, registered trademarks or service marks of their respective holders.

Copyright © 2019-Present, Ever Co. LTD. All rights reserved.

About

Deploy and Manage Ever® Demand™ Platform on Clouds with Pulumi

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published