Skip to content

Commit

Permalink
Merge pull request #174 from senthilrch/develop
Browse files Browse the repository at this point in the history
PR#1 for v0.10.0
  • Loading branch information
senthilrch authored May 22, 2022
2 parents 3f725b7 + 83930a4 commit d322c63
Show file tree
Hide file tree
Showing 41 changed files with 3,074 additions and 158 deletions.
243 changes: 243 additions & 0 deletions .github/workflows/build-kube-fledged.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,243 @@
name: Reusable workflow to build kube-fledged

on:
workflow_call:
inputs:
alpine_version:
description: 'Version of alpine base image'
required: true
type: string
controller_image_repo:
description: 'kubefledged-controller repository'
required: true
type: string
crictl_image_repo:
description: 'kubefledged-cri-client repository'
required: true
type: string
crictl_version:
description: 'crictl tool version'
required: true
type: string
docker_version:
description: 'docker version'
required: true
type: string
dockerfile_controller:
description: 'kubefledged-controller dockerfile path'
required: true
type: string
dockerfile_cri_client:
description: 'kubefledged-cri-client dockerfile path'
required: true
type: string
dockerfile_operator:
description: 'kubefledged-operator dockerfile path'
required: true
type: string
dockerfile_webhook_server:
description: 'kubefledged-webhook-server dockerfile path'
required: true
type: string
golang_version:
description: 'Go version used during the build'
required: true
type: string
operator_image_repo:
description: 'kubefledged-operator repository'
required: true
type: string
operator_target_platforms:
description: 'target platforms for operator multi-arch image'
required: true
type: string
operatorsdk_version:
description: 'operator sdk release version'
required: true
type: string
push_image:
description: 'whether or not to push built images to dockerhub'
required: true
type: boolean
release_version:
description: 'kube-fledged release version'
required: true
type: string
target_platforms:
description: 'target platforms for multi-arch images'
required: true
type: string
webhook_server_image_repo:
description: 'kubefledged-webhook-server repository'
required: true
type: string
secrets:
dockerhub_user:
description: 'Dockerhub username'
required: false
dockerhub_pswd:
description: 'Dockerhub password'
required: false

jobs:
build_kube_fledged:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: ${{ inputs.golang_version }}

- name: Install dependencies
run: |
go get -u golang.org/x/lint/golint
- name: Run verify scripts
run: |
hack/verify-codegen.sh
hack/verify-boilerplate.sh
hack/verify-gofmt.sh
hack/verify-golint.sh
hack/verify-govet.sh
- name: Run unit tests
run: hack/run-unit-tests.sh

- name: Set up QEMU
uses: docker/setup-qemu-action@v1

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1

- name: Login to DockerHub
env:
DOCKERHUB_USER: ${{ secrets.dockerhub_user }}
DOCKERHUB_PSWD: ${{ secrets.dockerhub_pswd }}
if: "${{ env.DOCKERHUB_USER != '' && env.DOCKERHUB_PSWD != '' }}"
uses: docker/login-action@v1
with:
username: ${{ secrets.dockerhub_user }}
password: ${{ secrets.dockerhub_pswd }}

- name: Build kubefledged-controller image
uses: docker/build-push-action@v2
with:
context: .
file: ${{ inputs.dockerfile_controller }}
build-args: |
ALPINE_VERSION=${{ inputs.alpine_version }}
GOLANG_VERSION=${{ inputs.golang_version }}
platforms: ${{ inputs.target_platforms }}
push: ${{ inputs.push_image }}
tags: ${{ inputs.controller_image_repo }}:${{ inputs.release_version }},${{ inputs.controller_image_repo }}:latest

- name: Build kubefledged-webhook-server image
uses: docker/build-push-action@v2
with:
context: .
file: ${{ inputs.dockerfile_webhook_server }}
build-args: |
ALPINE_VERSION=${{ inputs.alpine_version }}
GOLANG_VERSION=${{ inputs.golang_version }}
platforms: ${{ inputs.target_platforms }}
push: ${{ inputs.push_image }}
tags: ${{ inputs.webhook_server_image_repo }}:${{ inputs.release_version }},${{ inputs.webhook_server_image_repo }}:latest

- name: Build kubefledged-cri-client image
uses: docker/build-push-action@v2
with:
context: .
file: ${{ inputs.dockerfile_cri_client }}
build-args: |
ALPINE_VERSION=${{ inputs.alpine_version }}
CRICTL_VERSION=${{ inputs.crictl_version }}
DOCKER_VERSION=${{ inputs.docker_version }}
platforms: ${{ inputs.target_platforms }}
push: ${{ inputs.push_image }}
tags: ${{ inputs.crictl_image_repo }}:${{ inputs.release_version }},${{ inputs.crictl_image_repo }}:latest

- name: Build kubefledged-operator image
uses: docker/build-push-action@v2
with:
context: ./deploy/kubefledged-operator
file: ${{ inputs.dockerfile_operator }}
build-args: |
OPERATORSDK_VERSION=${{ inputs.operatorsdk_version }}
platforms: ${{ inputs.operator_target_platforms }}
push: ${{ inputs.push_image }}
tags: ${{ inputs.operator_image_repo }}:${{ inputs.release_version }},${{ inputs.operator_image_repo }}:latest

e2e_test_kube_fledged:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: ${{ inputs.golang_version }}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1

- name: Build kubefledged-controller image
uses: docker/build-push-action@v2
with:
context: .
file: ${{ inputs.dockerfile_controller }}
build-args: |
ALPINE_VERSION=${{ inputs.alpine_version }}
GOLANG_VERSION=${{ inputs.golang_version }}
platforms: linux/amd64
push: false
load: true
tags: ${{ inputs.controller_image_repo }}:${{ inputs.release_version }}

- name: Build kubefledged-webhook-server image
uses: docker/build-push-action@v2
with:
context: .
file: ${{ inputs.dockerfile_webhook_server }}
build-args: |
ALPINE_VERSION=${{ inputs.alpine_version }}
GOLANG_VERSION=${{ inputs.golang_version }}
platforms: linux/amd64
push: false
load: true
tags: ${{ inputs.webhook_server_image_repo }}:${{ inputs.release_version }}

- name: Build kubefledged-cri-client image
uses: docker/build-push-action@v2
with:
context: .
file: ${{ inputs.dockerfile_cri_client }}
build-args: |
ALPINE_VERSION=${{ inputs.alpine_version }}
CRICTL_VERSION=${{ inputs.crictl_version }}
DOCKER_VERSION=${{ inputs.docker_version }}
platforms: linux/amd64
push: false
load: true
tags: ${{ inputs.crictl_image_repo }}:${{ inputs.release_version }}

- name: Build kubefledged-operator image
uses: docker/build-push-action@v2
with:
context: ./deploy/kubefledged-operator
file: ${{ inputs.dockerfile_operator }}
build-args: |
OPERATORSDK_VERSION=${{ inputs.operatorsdk_version }}
platforms: linux/amd64
push: false
load: true
tags: ${{ inputs.operator_image_repo }}:${{ inputs.release_version }}

- name: E2e test
env:
IMAGE_TAG: ${{ inputs.release_version }}
run: make e2e-test

78 changes: 78 additions & 0 deletions .github/workflows/caller.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: Build kube-fledged

on:
push:
branches: [master, develop]
pull_request:
branches: [master, develop]

jobs:
push_master:
if: github.event_name == 'push' && github.ref_type == 'branch' && github.ref_name == 'master'
uses: ./.github/workflows/build-kube-fledged.yml
with:
alpine_version: 3.15.4
controller_image_repo: docker.io/senthilrch/kubefledged-controller
crictl_image_repo: docker.io/senthilrch/kubefledged-cri-client
crictl_version: v1.23.0
docker_version: 20.10.9
dockerfile_controller: build/Dockerfile.controller
dockerfile_cri_client: build/Dockerfile.cri_client
dockerfile_operator: deploy/kubefledged-operator/build/Dockerfile
dockerfile_webhook_server: build/Dockerfile.webhook_server
golang_version: 1.18.1
operator_image_repo: docker.io/senthilrch/kubefledged-operator
operator_target_platforms: linux/amd64,linux/arm64
operatorsdk_version: v1.19.1
push_image: true
release_version: v0.10.0
target_platforms: linux/amd64,linux/arm/v7,linux/arm64/v8
webhook_server_image_repo: docker.io/senthilrch/kubefledged-webhook-server
secrets:
dockerhub_user: ${{ secrets.DOCKERHUB_USER }}
dockerhub_pswd: ${{ secrets.DOCKERHUB_PSWD }}
push_develop:
if: github.event_name == 'push' && github.ref_type == 'branch' && github.ref_name == 'develop'
uses: ./.github/workflows/build-kube-fledged.yml
with:
alpine_version: 3.15.0
controller_image_repo: docker.io/senthilrch/kubefledged-controller
crictl_image_repo: docker.io/senthilrch/kubefledged-cri-client
crictl_version: v1.23.0
docker_version: 20.10.9
dockerfile_controller: build/Dockerfile.controller
dockerfile_cri_client: build/Dockerfile.cri_client
dockerfile_operator: deploy/kubefledged-operator/build/Dockerfile
dockerfile_webhook_server: build/Dockerfile.webhook_server
golang_version: 1.17.7
operator_image_repo: docker.io/senthilrch/kubefledged-operator
operator_target_platforms: linux/amd64,linux/arm64
operatorsdk_version: v1.18.0
push_image: true
release_version: v0.10.0
target_platforms: linux/amd64
webhook_server_image_repo: docker.io/senthilrch/kubefledged-webhook-server
secrets:
dockerhub_user: ${{ secrets.DOCKERHUB_USER }}
dockerhub_pswd: ${{ secrets.DOCKERHUB_PSWD }}
pull_request:
if: github.event_name == 'pull_request'
uses: ./.github/workflows/build-kube-fledged.yml
with:
alpine_version: 3.15.0
controller_image_repo: docker.io/senthilrch/kubefledged-controller
crictl_image_repo: docker.io/senthilrch/kubefledged-cri-client
crictl_version: v1.23.0
docker_version: 20.10.9
dockerfile_controller: build/Dockerfile.controller
dockerfile_cri_client: build/Dockerfile.cri_client
dockerfile_operator: deploy/kubefledged-operator/build/Dockerfile
dockerfile_webhook_server: build/Dockerfile.webhook_server
golang_version: 1.17.7
operator_image_repo: docker.io/senthilrch/kubefledged-operator
operator_target_platforms: linux/amd64
operatorsdk_version: v1.18.0
push_image: false
release_version: v0.10.0
target_platforms: linux/amd64
webhook_server_image_repo: docker.io/senthilrch/kubefledged-webhook-server
18 changes: 12 additions & 6 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
## We invite contributions to _kube-fledged_.

- Submit an issue if you find a bug or interested in seeing a new feature implemented.
- If you would like to work on an existing issue, please make a comment in the issue.
- Upon Author's confirmation, start working on the issue.
- Fork the project, develop and test your code.
- Submit a pull request. Ensure ALL CI checks are passed.
- We will review and approve your pull request

* Submit an issue if you find a bug or interested in seeing a new feature/ enhancement implemented.

* If you would like to submit a PR for an existing issue, please make a comment in the issue. The maintainer will review your request and if approved, the issue will be assigned to you.

* Once the issue is assigned to you, start working on the issue.

* Fork the project, develop and test your code.

* Submit a pull request against 'develop' branch. Ensure ALL CI checks are passed.

* The maintainer will review and approve your pull request
15 changes: 9 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -43,27 +43,27 @@ ifndef OPERATOR_IMAGE_REPO
endif

ifndef RELEASE_VERSION
RELEASE_VERSION=v0.9.0
RELEASE_VERSION=v0.10.0
endif

ifndef DOCKER_VERSION
DOCKER_VERSION=20.10.6
DOCKER_VERSION=20.10.9
endif

ifndef CRICTL_VERSION
CRICTL_VERSION=v1.21.0
CRICTL_VERSION=v1.23.0
endif

ifndef GOLANG_VERSION
GOLANG_VERSION=1.16.4
GOLANG_VERSION=1.17.7
endif

ifndef ALPINE_VERSION
ALPINE_VERSION=3.13.9
ALPINE_VERSION=3.15.0
endif

ifndef OPERATORSDK_VERSION
OPERATORSDK_VERSION=v1.9.0
OPERATORSDK_VERSION=v1.18.0
endif

ifndef TARGET_PLATFORMS
Expand Down Expand Up @@ -270,3 +270,6 @@ remove-webhook-server-using-operator:
sed -i "s|enable: true|enable: false|g" deploy/kubefledged-operator/deploy/crds/charts.helm.kubefledged.io_v1alpha2_kubefledged_cr.yaml
kubectl apply -f deploy/kubefledged-operator/deploy/crds/charts.helm.kubefledged.io_v1alpha2_kubefledged_cr.yaml

.PHONY: e2e-test
e2e-test:
@go test -v ./e2etest
Loading

0 comments on commit d322c63

Please sign in to comment.