Deploying with Spinnaker to App Engine from GitLab - google-app-engine

I'm trying to know if there's any way to deploy a Google App Engine application, using Spinnaker with a repository that's on GitLab. I've already done the deploy from the repo on github, and it works like a charm, but my official repo is on GitLab (on premise gitlab installation). Is there any way to configure Spinnaker to connect to GitLab?
So far, I've read that a workaround could be used by Jenkins, but I would like to avoid it (would only do this for a very extreme case).
I've also came with the idea of putting a proxy, just set the webhook on gitlab, parse the json paylod to the github format, and sendit to Spinnaker, but also, that woulb be in case that's no way for Spinnaker to do it naturally
Regards!

Spinnaker does not support webhooks from GitLab.
Adding support should not take much work. You're welcome to make a feature request or implement support yourself - take a look at the Echo microservice.

Related

IntelliJ: cannot deploy to Google App Engine (Standard)

The IDE complains about no Deployment selected, but from the picture I can't pick one.
I have upgraded IntelliJ to the latest. I am planning to reinstall everything.
Suggestions?
There should be an artifact displayed:
Make sure you have a war artifact defined in the Project Structure | Artifacts.
If the issue persists, please report a bug and attach a sample project to reproduce.
Artifact options available out of the box in IntelliJ IDEA Ultimate:
If you don't see the Web Application options, you need to make sure that all the plug-ins are enabled. You can also just delete disabled_plugins.txt file from the IDE CONFIG directory and restart the IDE.
In case you are still running into issues:
It actually looks like you are using the Cloud Tools for IntelliJ plugin (https://github.com/GoogleCloudPlatform/google-cloud-intellij) and not the App Engine plugin bundled in IDEA Ultimate as in the accepted answer.
You can refer to the following documentation for deployment to the App Engine standard environment:
https://cloud.google.com/tools/intellij/docs/deploy-std
Also a couple things to check:
You should have an app engine standard facet
You should have an exploded-war artifact:
Try the following action:
Tools > Google Cloud Tools > Add App Engine support > Google App Engine Standard and see if this resolves the problem.
If none of this helps, perhaps you can post some screenshots of your artifact / module structure under project settings.
So OK, at the end I was using IntelliJ Community which doesn't support deploying to Google App Engine anymore (although it's bizarre the plugin is available). Apparently one of the latest updates disable whatever minimal support was there, as I was able to deploy to GAE just a few weeks ago.

Deploy non-web Java application

I have a relatively small Java app, which I'd like to move over to the Google App Engine. It runs in the console, with no user input needed after the initial startup. I researched a bit on how to deploy it, but all tutorials seem to focus on Java web apps, when I don't really need that. Is it possible to deploy my app if it's not a web app?
App Engine is probably the wrong GCP platform for you - you'd probably be better served just deploying your jar directly onto a Google Compute Engine node. GAE is pretty explicitly oriented around web applications and you'd need to do a bunch of configuration in order to have it work for your use case.
Does your non-web Java app handle web requests? If not, it seems difficult to imagine that you would be able to reach your deployed app and use it for any purpose, once deployed. Your Java app should be able to handle requests, to make deployment worthwhile, and the deployed app useful.
You may find out about how your app should handle requests by reading the How Requests are Handled documentation page.

Google Appengine's Version of Heroku Piplines

I used to work on Heroku a lot and loved their pipeline feature, that spins a new instance for every PR on github to test with.
We're using Google Appengine to serve a django app and are struggling to find an alternative for this live testing on the web.
Does anyone know what to use to do the same for Google Appengine? Is this something that needs to be built custom? Can't seem to find anything on google searches.
Thanks :)
Maybe the following two articles will help you.
Continious delivery with Bitbucket:
https://cloud.google.com/solutions/continuous-delivery-bitbucket-app-engine
or you can use Gitlab (that's what I am doing)
https://medium.com/evenbit/an-easy-guide-to-automatically-deploy-your-google-app-engine-project-with-gitlab-ci-48cb84757125
Unfortunately Google Cloud does not offer any out of the box solution until now

Deploy Dropwizard on Google AppEngine

I have been trying to find a way to deploy a Dropwizard app on Google AppEngine, but I haven't found anything so far.
Judging by this question (and answer) I think it might not be possible.
I would like to be sure about that, and If it does work, I'd like to learn how.
There is a dropwizard fork called warwizard which apparently lets you create war files from your dropwizard code, but it has not been touched for over 6 months, which would likely make it difficult to work with using the dropwizard docs.
Dropwizard is just Jersey+Jackson+Jetty bundled together nicely. Jetty and App Engine won't get along (that is, App Engine is already running Jetty, so it doesn't want the application to provide its own).
You're probably best off using Jersey and Jackson without Dropwizard tying them together: http://blog.iparissa.com/googles-app-engine-java/google-app-engine-jax-rs-jersey/ & http://www.cowtowncoder.com/blog/archives/2009/11/entry_338.html
You can however, run Dropwizard on Google Compute Engine. Which is basically just linux VMs provided by Google, with access to their APIs if needed.
I manged to get my Dropwizard instance working by doing the following on GCE:
Install Java
sudo apt-get install java7-runtime-headless
Open firewall ports:
gcutil addfirewall rest --description="http" --allowed="tcp:8080
gcutil addfirewall admin --description="admin" --allowed="tcp:8081"
Copy file to GCE
gcutil --project={project-id} push {instance-name} {local-file} {remote-target-path}
Run your app
java -jar your-app.jar server your-config.yml
EDIT: there is also another alternative called wiztowar https://github.com/twilio/wiztowar which supports DW 0.6.2 only.
I've been trying to solve this issue for the past two month. Here are my findings:
1- Yes, you can deploy Dropwizard as a WAR file. You need to use some hacks like Wizard in a box or WizToWar
2- No! You can't deploy that WAR file on AppEngine standard environment.
Why?
The main issue is that AppEngine is using servlet-api v2.5 (which is more than 10 years old!) and has no plan to upgrade to servlet-api v3 or higher. Dropwizard on the other hand require servlet-api v3 or higher.
BUT wait! there is another option
You can deploy Dropwizard on App Engine Flexible Environment
App Engine Flex is still in beta, but I've heard it will be available for public usage in Q1 2017. If you want to use it now, you have to ask for that to be enabled for you.
How do you deploy on App Engine Flex?
-> I've put all the steps on doing that in a blog post here:
Deploying Dropwizard on App Engine Flex

How to manage uploaded code in GAE?

Is there a way to manage interactively (view/delete) config and code of an application in google app engine? I understand that the deployment approach is versioned batch upload, but can i at least download back a collection of uploaded files of current (or any given) revision of an app? Or is there even an interface for GAE similar to CVS/SVN/GIT with features like revisions diff?
You can download your deployed code as of SDK version 1.3.8 according to the prerelease announcement
This feature was apparently not included in 1.3.8, but it seems to at least be in the works.
The developer who uploaded an app
version can download that version's
code using the appcfg.py
download_app command. You can use this
to download both Python and Java
application code.
You can't interactively configure your app, or modify the code without redeploying, however.
No, you cannot download a deployed application. The only way to see the source is if you have it. You can use git/CVS/SVN but it wont have anything to do with the actual deployment of the application.
Edit: Here are the docs

Resources