devguy
devguy

Reputation: 771

Terraform GCP Cloud function using Github

I want to create a Google Cloud Function using Terraform but want to pull the source code from Github.

I managed to do this zipping up the function and copying it into Cloud Storage using Terraform, but I do not like this workflow as I have to run a script to kick things off. I rather just do a PR on Github and see the new code in GCP.

I already setup Google Cloud Source Repositories to source from my Github.

The Terraform doc to use the "source_repository" argument is not clear to me. What I would like to do is just grab the source from HEAD on the master branch.

This function source code is located under the sub-folder:

cloud-functions/training_data

There are two files inside the function folder:

I just would like to know how to specify the “source_repository” argument in this case.

Upvotes: 0

Views: 1736

Answers (2)

M-sAnNan
M-sAnNan

Reputation: 804

source_repository = {
  url = https://source.developers.google.com/projects/kalefive-project/repos/kalefive-functions-repository/moveable-aliases/master/paths/src/functions/bin
}

incase the above syntax is not working just use it without an equal sign.

resource "google_cloudfunctions_function" "js_function" {
    source_repository  {
      url = https://source.developers.google.com/projects/kalefive-project/repos/kalefive-functions-repository/moveable-aliases/master/paths/src/functions/bin
   }
}

Upvotes: 0

Kalefive
Kalefive

Reputation: 26

I recently came across this problem as well.

The documentation says to format the url value to be, https://source.developers.google.com/projects/*/repos/*/moveable-aliases/*/paths/*

To get this to work...hypothetically, say my source code and my repository had the following information...

project: kalefive-project
repo: kalefive-functions-repository
branch: master
directory_in_repo_with_src: src/functions/bin

Then the resulting url that worked for me was...

source_repository = {
  url = https://source.developers.google.com/projects/kalefive-project/repos/kalefive-functions-repository/moveable-aliases/master/paths/src/functions/bin
}

Hope this helps!

Upvotes: 1

Related Questions