Question

Feature Request: Enable app.yaml submitting during app platform setup and later during each redeploy

Posted March 17, 2021 131 views
DigitalOcean App Platform

Use case 1.
Right now if i want to create component with custom app.yaml i need to create app manually by selecting dummy options, and then manually upload my own app.yaml from the settings tab.

Use case 2.
I would just like to push to my git repo and have auto deploy enabled.
Changes to my app.yaml would be detected and automatically applied to my Component in app platform.

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
Submit an Answer
3 answers

👋🏼 @brankoilicc

These are great suggestions, thank you for sharing! I’ll share them with the team. With regards to creating a new app from a spec, can you tell me more about which configuration options you need that are missing from the UI?

Also, I’ll suggest some workarounds in case they’re useful:

  1. You can use the doctl CLI tool to create an app using a spec from the start: doctl apps create --spec <path-to-spec>
  2. If you use GitHub Actions, you can disable “Deploy on Push” and have your GitHub Actions workflow update your app spec on commit. See the do-app-deploy-action for an example.

Hello Kamaln7,

UI misses some settings such as dockerfile_path. Monorepo applications are trendy right now so we cant have single Dockerfile in root of repo. Rather we have DockerfileAdmin, DockerfileShop in .projects/admin and ./projects/shop etc..
But even if UI did have all the features, we prefer to have app.yaml pulled from the repo because of version control, easy and deterministic rollback in case of issues etc.

To answer question 1. Even though we run jenkins right now and we could dooctl apps create --spec <path-to-spec> , the end goal for us was to ditch CD part of pipeline and rely on DigitalOcean App Platform to do the heavy lifting and build and deploy everything based on provided Dockerfile.

Finally after careful consideration we decided App Platform does not meet our needs so we are moving back to droplets.

The main reasons are:

  1. Pull not possible from tag. Only branch
  2. Rollback to previous docker tag not possible
  3. app.yaml specification not connected to actual build process (
  4. Connecting to managed database not possible with firewall rules

App Platform is very promising with great features such as direct console, monitoring, cdn, ease of deployments (only if case is trivial though. We were unable to setup multi language angular APP to compile only once and deploy both languages as single or two static sites. We were more than happy to pay double but were unable to find a solution)

Final suggestion. Most of these issues could be solved if App Platform would just save docker images to private repo that customers would gladly pay. If i provide Dockerfile dont just build the image and then discard it. Make it possible to save to DOCR so we get rollback functionality.

The inherent risk with not having deterministic rollback functionality and amount of customization we had to make and significantly higher price for App Platform for the same or similar resource we decided to wait a little bit longer.

Sorry for long post
Cheers

  • @brankoilicc, thank you for the detailed response! This is very helpful feedback. I’m sorry you had to move off App Platform for now. These are all great suggestions and we hope that we are able to address them soon. #4 (DBaaS over VPC) is definitely very high on our priority list.

Just to elaborate further on saving images to DOCR. It is not just about rollback. Building image for our angular app takes ~20 minutes.
Redeploying existing image takes seconds.