Skip to content

deploy-gke Github Action #14

Description

@zrosenbauer

TL;DR

Would it make sense to add in the ability to deploy / run commands similar to the CircleCI Orb: https://circleci.com/developer/orbs/orb/circleci/kubernetes#commands

I've been considering building this, but happy to do leverage this action under google-github-actions or build under https://github.com/bluenovaio. This would help me with a project we are working on so I'm going to probably build it either way...

Design

Action YAML

# Paste your proposed GitHub Actions YAML here.

Resources

Additional information

Activity

  1. bharathkkb commented on Mar 12, 2021

    @bharathkkb
    Contributor

    @zrosenbauer thanks for the suggestion. I have a few ideas around a potential action where we offer additional functionality beyond just a wrapper around kubectl apply. Perhaps waiting for deploy to complete, easily allowing to swap in image digest etc. Did you have any other ideas?

  2. zrosenbauer commented on Mar 12, 2021

    @zrosenbauer
    Author

    The CircleCI Orb I shared has really good examples and good API (for most part but haven't reviewed the whole thing).

    Commands:

    • create-or-update-resource
    • delete-resource
    • get-rollout-status
    • install
    • install-kops
    • install-kubeconfig
    • install-kubectl
    • rollback
    • update-container-image - (I used this A LOT & very similar to Cloud Run Deploy other than its only update not create)

    Ideally, it would accept two types of deployments out of the box "Manifest OR update-image (kubectl set image). You could also support Helm or Kustomize BUT with both of those tools you can generate the manifests.

    GKE is more complex but you could easily have multiple actions long term i.e. deploy-gke, deploy-gke-helm, deploy-gke-kustomize if you wanted...

  3. zrosenbauer commented on Mar 18, 2021

    @zrosenbauer
    Author

    @bharathkkb any other thoughts on this? I'm not super familiar with the GKE APIs (I would more likely proxy via setup-gcloud) but could take a stab but would need a Google template or something set up.

  4. bharathkkb commented on Mar 18, 2021

    @bharathkkb
    Contributor

    Hi @zrosenbauer I'll get back to you next week regarding more concrete plans on moving forward.

    I think any install-* would be currently out of scope to fit into this repo. kubectl is preinstalled and incase of selfhosted you can control the binaries in the image. I also wary about being toolchain specific (helm, kustomize) beyond kubectl but can be companion actions after you get credentials to any cluster.

    update-container-image and await-rollout are def useful and worth considering.

    I'm not super familiar with the GKE APIs

    So AFAIK none of the above enhancements we discussed talk to Google APIs, they would talk directly to kubeapi. Feel free to correct me if I missed something.

  5. zrosenbauer commented on Mar 20, 2021

    @zrosenbauer
    Author

    What I've seen to date in all of these actions is interacting with the Google API wrappers for GKE / CloudRun etc.

    I think the most salient command that would be great to add is: update-container-image as its similar to Cloud Run interface in the sense you pass it an image and you can deploy. It would NOT support creating the deployment.

    If it can just mirror the kubectl API and honestly just proxy to it with some simple reusable commands it would be a good addition.

    Aka use setup-gke and run the commands based on the inputs (could be overkill for Google but I'm going to build in anycase)

  6. locked and limited conversation to collaborators on Dec 17, 2022
  7. converted this issue into a discussion #15 on Dec 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions