Enable GitHub developers to deploy to Kubernetes service using GitHub Actions
Перейти к файлу
Alessandro (Ale) Segala ba1ab966a4
Updated brands
2019-08-08 13:59:27 -07:00
action-modules Installing all the dependent packages (#1) 2019-07-29 13:27:09 +05:30
aks-set-context Update README.md 2019-08-08 16:06:10 +05:30
docker-login Revert "Moved container actions to aazure/container-actions" 2019-08-08 20:55:00 +05:30
docker-logout Revert "Moved container actions to aazure/container-actions" 2019-08-08 20:55:00 +05:30
k8s-create-secret Update README.md 2019-08-08 16:12:04 +05:30
k8s-deploy Revert "Moved container actions to aazure/container-actions" 2019-08-08 20:55:00 +05:30
k8s-set-context Fixed YAML 2019-08-08 13:05:58 -07:00
node_modules Installing all the dependent packages (#1) 2019-07-29 13:27:09 +05:30
setup-kubectl Update README.md 2019-08-08 16:13:58 +05:30
.gitignore Installing all the dependent packages (#1) 2019-07-29 13:27:09 +05:30
CODE_OF_CONDUCT.md Initial commit 2019-07-26 11:28:46 -07:00
LICENSE Initial commit 2019-07-26 11:28:47 -07:00
README.md Updated brands 2019-08-08 13:59:27 -07:00
package-lock.json Installing all the dependent packages (#1) 2019-07-29 13:27:09 +05:30
package.json Installing all the dependent packages (#1) 2019-07-29 13:27:09 +05:30

README.md

Kubernetes Actions for GitHub

A set of GitHub Actions for deploying to a Kubernetes cluster, including Azure Kubernetes service (AKS) and Kubernetes running on-premises and on public clouds.

The repository contains the following GitHub Actions:

Usage

Usage information for individual actions can be found in their respective directories.

For any credential like Azure Service Principal, Kubeconfig, add them as secrets in the GitHub repository and then use them in the workflow.

In the above example the secret name is REGISTRY_USERNAME and REGISTRY_PASSWORD and it can be used in the workflow by using the following syntax:

container-registry-username: ${{ secrets.REGISTRY_USERNAME }}

End to end workflow for building container images and deploying to an Azure Kubernetes Service cluster

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@master
    
    - uses: azure/k8s-actions/docker-login@master
      with:
        login-server: contoso.azurecr.io
        username: ${{ secrets.REGISTRY_USERNAME }}
        password: ${{ secrets.REGISTRY_PASSWORD }}
    
    - run: |
        docker build . -t contoso.azurecr.io/k8sdemo:${{ github.sha }}
        docker push contoso.azurecr.io/k8sdemo:${{ github.sha }}        
      
    # Set the target AKS cluster. 
    - uses: azure/k8s-actions/aks-set-context@master
      with:
        creds: '${{ secrets.AZURE_CREDENTIALS }}'
        cluster-name: contoso
        resource-group: contoso-rg
        
    - uses: azure/k8s-actions/k8s-create-secret@master
      with:
        container-registry-url: contoso.azurecr.io
        container-registry-username: ${{ secrets.REGISTRY_USERNAME }}
        container-registry-password: ${{ secrets.REGISTRY_PASSWORD }}
        secret-name: demo-k8s-secret

    - uses: azure/k8s-actions/k8s-deploy@master
      with:
        manifests: |
          manifests/deployment.yml
          manifests/service.yml          
        images: |
          contoso.azurecr.io/k8sdemo:${{ github.sha }}          
        imagepullsecrets: |
          demo-k8s-secret          

End to end workflow for building container images and deploying to a generic Kubernetes cluster

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@master
    
    - uses: azure/k8s-actions/docker-login@master
      with:
        login-server: contoso.azurecr.io
        username: ${{ secrets.REGISTRY_USERNAME }}
        password: ${{ secrets.REGISTRY_PASSWORD }}
    
    - run: |
        docker build . -t contoso.azurecr.io/k8sdemo:${{ github.sha }}
        docker push contoso.azurecr.io/k8sdemo:${{ github.sha }}        
      
    - uses: azure/k8s-actions/k8s-set-context@master
      with:
        kubeconfig: ${{ secrets.KUBE_CONFIG }}
        
    - uses: azure/k8s-actions/k8s-create-secret@master
      with:
        container-registry-url: contoso.azurecr.io
        container-registry-username: ${{ secrets.REGISTRY_USERNAME }}
        container-registry-password: ${{ secrets.REGISTRY_PASSWORD }}
        secret-name: demo-k8s-secret

    - uses: azure/k8s-actions/k8s-deploy@master
      with:
        manifests: |
          manifests/deployment.yml
          manifests/service.yml          
        images: |
          contoso.azurecr.io/k8sdemo:${{ github.sha }}          
        imagepullsecrets: |
          demo-k8s-secret          

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.