Skip to content

Commit 3e70629

Browse files
authored
Merge pull request #185 from senthilrch/develop
PR #2 for v0.10.0
2 parents 23a6274 + 389d96d commit 3e70629

32 files changed

Lines changed: 552 additions & 1307 deletions

.github/workflows/build-kube-fledged.yml

Lines changed: 6 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -170,74 +170,12 @@ jobs:
170170
push: ${{ inputs.push_image }}
171171
tags: ${{ inputs.operator_image_repo }}:${{ inputs.release_version }},${{ inputs.operator_image_repo }}:latest
172172

173-
e2e_test_kube_fledged:
174-
runs-on: ubuntu-latest
175-
steps:
176-
- name: Checkout
177-
uses: actions/checkout@v2
178-
179-
- name: Set up Go
180-
uses: actions/setup-go@v3
181-
with:
182-
go-version: ${{ inputs.golang_version }}
183-
184-
- name: Set up Docker Buildx
185-
uses: docker/setup-buildx-action@v1
186-
187-
- name: Build kubefledged-controller image
188-
uses: docker/build-push-action@v2
189-
with:
190-
context: .
191-
file: ${{ inputs.dockerfile_controller }}
192-
build-args: |
193-
ALPINE_VERSION=${{ inputs.alpine_version }}
194-
GOLANG_VERSION=${{ inputs.golang_version }}
195-
platforms: linux/amd64
196-
push: false
197-
load: true
198-
tags: ${{ inputs.controller_image_repo }}:${{ inputs.release_version }}
199-
200-
- name: Build kubefledged-webhook-server image
201-
uses: docker/build-push-action@v2
202-
with:
203-
context: .
204-
file: ${{ inputs.dockerfile_webhook_server }}
205-
build-args: |
206-
ALPINE_VERSION=${{ inputs.alpine_version }}
207-
GOLANG_VERSION=${{ inputs.golang_version }}
208-
platforms: linux/amd64
209-
push: false
210-
load: true
211-
tags: ${{ inputs.webhook_server_image_repo }}:${{ inputs.release_version }}
212-
213-
- name: Build kubefledged-cri-client image
214-
uses: docker/build-push-action@v2
215-
with:
216-
context: .
217-
file: ${{ inputs.dockerfile_cri_client }}
218-
build-args: |
219-
ALPINE_VERSION=${{ inputs.alpine_version }}
220-
CRICTL_VERSION=${{ inputs.crictl_version }}
221-
DOCKER_VERSION=${{ inputs.docker_version }}
222-
platforms: linux/amd64
223-
push: false
224-
load: true
225-
tags: ${{ inputs.crictl_image_repo }}:${{ inputs.release_version }}
226-
227-
- name: Build kubefledged-operator image
228-
uses: docker/build-push-action@v2
229-
with:
230-
context: ./deploy/kubefledged-operator
231-
file: ${{ inputs.dockerfile_operator }}
232-
build-args: |
233-
OPERATORSDK_VERSION=${{ inputs.operatorsdk_version }}
234-
platforms: linux/amd64
235-
push: false
236-
load: true
237-
tags: ${{ inputs.operator_image_repo }}:${{ inputs.release_version }}
238-
239173
- name: E2e test
240174
env:
241175
IMAGE_TAG: ${{ inputs.release_version }}
242-
run: make e2e-test
243-
176+
run: |
177+
docker pull ${{ inputs.controller_image_repo }}:${{ inputs.release_version }}
178+
docker pull ${{ inputs.webhook_server_image_repo }}:${{ inputs.release_version }}
179+
docker pull ${{ inputs.crictl_image_repo }}:${{ inputs.release_version }}
180+
docker pull ${{ inputs.operator_image_repo }}:${{ inputs.release_version }}
181+
go test -v ./e2etest

.github/workflows/caller.yml

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,21 @@ jobs:
1111
if: github.event_name == 'push' && github.ref_type == 'branch' && github.ref_name == 'master'
1212
uses: ./.github/workflows/build-kube-fledged.yml
1313
with:
14-
alpine_version: 3.15.4
14+
alpine_version: 3.16.2
15+
crictl_version: v1.25.0
16+
docker_version: 20.10.20
17+
golang_version: 1.19.2
18+
operatorsdk_version: v1.24.1
19+
release_version: v0.10.0
1520
controller_image_repo: docker.io/senthilrch/kubefledged-controller
1621
crictl_image_repo: docker.io/senthilrch/kubefledged-cri-client
17-
crictl_version: v1.23.0
18-
docker_version: 20.10.9
1922
dockerfile_controller: build/Dockerfile.controller
2023
dockerfile_cri_client: build/Dockerfile.cri_client
2124
dockerfile_operator: deploy/kubefledged-operator/build/Dockerfile
2225
dockerfile_webhook_server: build/Dockerfile.webhook_server
23-
golang_version: 1.18.1
2426
operator_image_repo: docker.io/senthilrch/kubefledged-operator
2527
operator_target_platforms: linux/amd64,linux/arm64
26-
operatorsdk_version: v1.19.1
2728
push_image: true
28-
release_version: v0.10.0
2929
target_platforms: linux/amd64,linux/arm/v7,linux/arm64/v8
3030
webhook_server_image_repo: docker.io/senthilrch/kubefledged-webhook-server
3131
secrets:
@@ -35,21 +35,21 @@ jobs:
3535
if: github.event_name == 'push' && github.ref_type == 'branch' && github.ref_name == 'develop'
3636
uses: ./.github/workflows/build-kube-fledged.yml
3737
with:
38-
alpine_version: 3.15.0
38+
alpine_version: 3.16.2
39+
crictl_version: v1.25.0
40+
docker_version: 20.10.20
41+
golang_version: 1.19.2
42+
operatorsdk_version: v1.24.1
43+
release_version: v0.10.0
3944
controller_image_repo: docker.io/senthilrch/kubefledged-controller
4045
crictl_image_repo: docker.io/senthilrch/kubefledged-cri-client
41-
crictl_version: v1.23.0
42-
docker_version: 20.10.9
4346
dockerfile_controller: build/Dockerfile.controller
4447
dockerfile_cri_client: build/Dockerfile.cri_client
4548
dockerfile_operator: deploy/kubefledged-operator/build/Dockerfile
4649
dockerfile_webhook_server: build/Dockerfile.webhook_server
47-
golang_version: 1.17.7
4850
operator_image_repo: docker.io/senthilrch/kubefledged-operator
49-
operator_target_platforms: linux/amd64,linux/arm64
50-
operatorsdk_version: v1.18.0
51+
operator_target_platforms: linux/amd64
5152
push_image: true
52-
release_version: v0.10.0
5353
target_platforms: linux/amd64
5454
webhook_server_image_repo: docker.io/senthilrch/kubefledged-webhook-server
5555
secrets:
@@ -59,20 +59,20 @@ jobs:
5959
if: github.event_name == 'pull_request'
6060
uses: ./.github/workflows/build-kube-fledged.yml
6161
with:
62-
alpine_version: 3.15.0
62+
alpine_version: 3.16.2
63+
crictl_version: v1.25.0
64+
docker_version: 20.10.20
65+
golang_version: 1.19.2
66+
operatorsdk_version: v1.24.1
67+
release_version: v0.10.0
6368
controller_image_repo: docker.io/senthilrch/kubefledged-controller
6469
crictl_image_repo: docker.io/senthilrch/kubefledged-cri-client
65-
crictl_version: v1.23.0
66-
docker_version: 20.10.9
6770
dockerfile_controller: build/Dockerfile.controller
6871
dockerfile_cri_client: build/Dockerfile.cri_client
6972
dockerfile_operator: deploy/kubefledged-operator/build/Dockerfile
7073
dockerfile_webhook_server: build/Dockerfile.webhook_server
71-
golang_version: 1.17.7
7274
operator_image_repo: docker.io/senthilrch/kubefledged-operator
7375
operator_target_platforms: linux/amd64
74-
operatorsdk_version: v1.18.0
7576
push_image: false
76-
release_version: v0.10.0
7777
target_platforms: linux/amd64
7878
webhook_server_image_repo: docker.io/senthilrch/kubefledged-webhook-server

Makefile

Lines changed: 21 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -42,28 +42,28 @@ ifndef OPERATOR_IMAGE_REPO
4242
OPERATOR_IMAGE_REPO=docker.io/senthilrch/kubefledged-operator
4343
endif
4444

45-
ifndef RELEASE_VERSION
46-
RELEASE_VERSION=v0.10.0
45+
ifndef ALPINE_VERSION
46+
ALPINE_VERSION=3.16.2
4747
endif
4848

49-
ifndef DOCKER_VERSION
50-
DOCKER_VERSION=20.10.9
49+
ifndef CRICTL_VERSION
50+
CRICTL_VERSION=v1.25.0
5151
endif
5252

53-
ifndef CRICTL_VERSION
54-
CRICTL_VERSION=v1.23.0
53+
ifndef DOCKER_VERSION
54+
DOCKER_VERSION=20.10.20
5555
endif
5656

5757
ifndef GOLANG_VERSION
58-
GOLANG_VERSION=1.17.7
58+
GOLANG_VERSION=1.19.2
5959
endif
6060

61-
ifndef ALPINE_VERSION
62-
ALPINE_VERSION=3.15.0
61+
ifndef OPERATORSDK_VERSION
62+
OPERATORSDK_VERSION=v1.24.1
6363
endif
6464

65-
ifndef OPERATORSDK_VERSION
66-
OPERATORSDK_VERSION=v1.18.0
65+
ifndef RELEASE_VERSION
66+
RELEASE_VERSION=v0.10.0
6767
endif
6868

6969
ifndef TARGET_PLATFORMS
@@ -195,8 +195,6 @@ deploy-using-yaml:
195195
kubectl apply -f deploy/kubefledged-clusterrolebinding-controller.yaml
196196
kubectl apply -f deploy/kubefledged-deployment-controller.yaml
197197
kubectl rollout status deployment kubefledged-controller -n kube-fledged --watch
198-
199-
deploy-webhook-server-using-yaml:
200198
-kubectl delete validatingwebhookconfigurations -l app=kubefledged
201199
kubectl apply -f deploy/kubefledged-validatingwebhook.yaml
202200
-kubectl delete deploy -l app=kubefledged,kubefledged=kubefledged-webhook-server
@@ -206,27 +204,30 @@ deploy-webhook-server-using-yaml:
206204
kubectl apply -f deploy/kubefledged-deployment-webhook-server.yaml
207205
kubectl apply -f deploy/kubefledged-service-webhook-server.yaml
208206
kubectl rollout status deployment kubefledged-webhook-server -n kube-fledged --watch
207+
kubectl get pods -n kube-fledged
209208

210209
deploy-using-operator:
211210
# Create the namespace
212211
-kubectl create namespace ${KUBEFLEDGED_NAMESPACE}
213212
# Deploy the operator
214-
sed -i "s|{{KUBEFLEDGED_NAMESPACE}}|${KUBEFLEDGED_NAMESPACE}|g" deploy/kubefledged-operator/deploy/service_account.yaml
215-
sed -i "s|{{KUBEFLEDGED_NAMESPACE}}|${KUBEFLEDGED_NAMESPACE}|g" deploy/kubefledged-operator/deploy/clusterrole_binding.yaml
216-
sed -i "s|{{KUBEFLEDGED_NAMESPACE}}|${KUBEFLEDGED_NAMESPACE}|g" deploy/kubefledged-operator/deploy/operator.yaml
213+
sed -i '' "s|{{KUBEFLEDGED_NAMESPACE}}|${KUBEFLEDGED_NAMESPACE}|g" deploy/kubefledged-operator/deploy/service_account.yaml
214+
sed -i '' "s|{{KUBEFLEDGED_NAMESPACE}}|${KUBEFLEDGED_NAMESPACE}|g" deploy/kubefledged-operator/deploy/clusterrole_binding.yaml
215+
sed -i '' "s|{{KUBEFLEDGED_NAMESPACE}}|${KUBEFLEDGED_NAMESPACE}|g" deploy/kubefledged-operator/deploy/operator.yaml
217216
kubectl apply -f deploy/kubefledged-operator/deploy/crds/charts.helm.kubefledged.io_kubefledgeds_crd.yaml
218217
kubectl apply -f deploy/kubefledged-operator/deploy/service_account.yaml
219218
kubectl apply -f deploy/kubefledged-operator/deploy/clusterrole.yaml
220219
kubectl apply -f deploy/kubefledged-operator/deploy/clusterrole_binding.yaml
221220
kubectl apply -f deploy/kubefledged-operator/deploy/operator.yaml
222221
# Deploy kube-fledged
223-
sed -i "s|{{KUBEFLEDGED_NAMESPACE}}|${KUBEFLEDGED_NAMESPACE}|g" deploy/kubefledged-operator/deploy/crds/charts.helm.kubefledged.io_v1alpha2_kubefledged_cr.yaml
222+
sed -i '' "s|{{KUBEFLEDGED_NAMESPACE}}|${KUBEFLEDGED_NAMESPACE}|g" deploy/kubefledged-operator/deploy/crds/charts.helm.kubefledged.io_v1alpha2_kubefledged_cr.yaml
224223
kubectl rollout status deployment kubefledged-operator -n ${KUBEFLEDGED_NAMESPACE} --watch
225224
kubectl apply -f deploy/kubefledged-operator/deploy/crds/charts.helm.kubefledged.io_v1alpha2_kubefledged_cr.yaml
226-
227-
deploy-webhook-server-using-operator:
228-
sed -i "s|enable: false|enable: true|g" deploy/kubefledged-operator/deploy/crds/charts.helm.kubefledged.io_v1alpha2_kubefledged_cr.yaml
225+
sed -i '' "s|enable: false|enable: true|g" deploy/kubefledged-operator/deploy/crds/charts.helm.kubefledged.io_v1alpha2_kubefledged_cr.yaml
229226
kubectl apply -f deploy/kubefledged-operator/deploy/crds/charts.helm.kubefledged.io_v1alpha2_kubefledged_cr.yaml
227+
# Wait for the controller and webhook-server
228+
kubectl rollout status deployment kube-fledged-controller -n ${KUBEFLEDGED_NAMESPACE} --watch
229+
kubectl rollout status deployment kube-fledged-webhook-server -n ${KUBEFLEDGED_NAMESPACE} --watch
230+
kubectl get pods -n ${KUBEFLEDGED_NAMESPACE}
230231

231232
update:
232233
kubectl scale deployment kubefledged-controller --replicas=0 -n kube-fledged
@@ -242,14 +243,6 @@ remove-kubefledged:
242243
-kubectl delete crd -l app=kubefledged
243244
-kubectl delete validatingwebhookconfigurations -l app=kubefledged
244245

245-
remove-webhook-server:
246-
-kubectl delete validatingwebhookconfigurations -l app=kubefledged
247-
-kubectl delete deploy -l app=kubefledged,kubefledged=kubefledged-webhook-server -n kube-fledged
248-
-kubectl delete service -l app=kubefledged,kubefledged=kubefledged-webhook-server -n kube-fledged
249-
-kubectl delete clusterrolebinding -l app=kubefledged,kubefledged=kubefledged-webhook-server
250-
-kubectl delete clusterrole -l app=kubefledged,kubefledged=kubefledged-webhook-server
251-
-kubectl delete serviceaccount -l app=kubefledged,kubefledged=kubefledged-webhook-server -n kube-fledged
252-
253246
remove-kubefledged-and-operator:
254247
# Remove kubefledged
255248
-kubectl delete -f deploy/kubefledged-operator/deploy/crds/charts.helm.kubefledged.io_v1alpha2_kubefledged_cr.yaml
@@ -266,10 +259,6 @@ remove-kubefledged-and-operator:
266259
-git checkout deploy/kubefledged-operator/deploy/clusterrole_binding.yaml
267260
-git checkout deploy/kubefledged-operator/deploy/service_account.yaml
268261

269-
remove-webhook-server-using-operator:
270-
sed -i "s|enable: true|enable: false|g" deploy/kubefledged-operator/deploy/crds/charts.helm.kubefledged.io_v1alpha2_kubefledged_cr.yaml
271-
kubectl apply -f deploy/kubefledged-operator/deploy/crds/charts.helm.kubefledged.io_v1alpha2_kubefledged_cr.yaml
272-
273262
.PHONY: e2e-test
274263
e2e-test:
275264
@go test -v ./e2etest

README.md

Lines changed: 6 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,8 @@ These instructions install _kube-fledged_ to a separate namespace called "kube-f
6969
- Clone the source code repository
7070

7171
```
72-
$ mkdir -p $HOME/src/github.com/senthilrch
73-
$ git clone https://github.com/senthilrch/kube-fledged.git $HOME/src/github.com/senthilrch/kube-fledged
74-
$ cd $HOME/src/github.com/senthilrch/kube-fledged
72+
$ git clone https://github.com/senthilrch/kube-fledged.git $HOME/kube-fledged
73+
$ cd $HOME/kube-fledged
7574
```
7675

7776
- Deploy _kube-fledged_ to the cluster
@@ -87,12 +86,6 @@ These instructions install _kube-fledged_ to a separate namespace called "kube-f
8786
$ kubectl get imagecaches -n kube-fledged (Output should be: 'No resources found')
8887
```
8988

90-
- Optional: Deploy _kube-fledged webhook server_ to the cluster. This component enables validating the ImageCache CR.
91-
92-
```
93-
$ make deploy-webhook-server-using-yaml
94-
```
95-
9689
## Quick Install using Helm chart
9790

9891
- Create the namespace where kube-fledged will be installed
@@ -112,12 +105,6 @@ These instructions install _kube-fledged_ to a separate namespace called "kube-f
112105
$ helm install --verify kube-fledged kubefledged-charts/kube-fledged -n ${KUBEFLEDGED_NAMESPACE} --wait
113106
```
114107

115-
- Optional: Verify and install kube-fledged webhook server. This component enables validating the ImageCache CR.
116-
117-
```
118-
$ helm upgrade --verify kube-fledged kubefledged-charts/kube-fledged -n ${KUBEFLEDGED_NAMESPACE} --set webhookServer.enable=true --wait
119-
```
120-
121108
## Quick Install using Helm operator
122109

123110
These instructions install _kube-fledged_ to a separate namespace called "kube-fledged", using Helm operator and pre-built images in [Docker Hub.](https://hub.docker.com/u/senthilrch)
@@ -143,12 +130,6 @@ These instructions install _kube-fledged_ to a separate namespace called "kube-f
143130
$ kubectl get imagecaches -n kube-fledged (Output should be: 'No resources found')
144131
```
145132

146-
- Optional: Deploy _kube-fledged webhook server_ to the cluster. This component enables validating the ImageCache CR.
147-
148-
```
149-
$ make deploy-webhook-server-using-operator
150-
```
151-
152133
## Helm chart parameters
153134

154135
Parameters of the helm chart are documented [here](docs/helm-parameters.md)
@@ -162,9 +143,8 @@ These instructions will help you build _kube-fledged_ from source and deploy it
162143
- Clone the source code repository
163144

164145
```
165-
$ mkdir -p $HOME/src/github.com/senthilrch
166-
$ git clone https://github.com/senthilrch/kube-fledged.git $HOME/src/github.com/senthilrch/kube-fledged
167-
$ cd $HOME/src/github.com/senthilrch/kube-fledged
146+
$ git clone https://github.com/senthilrch/kube-fledged.git $HOME/kube-fledged
147+
$ cd $HOME/kube-fledged
168148
```
169149

170150
- If you are behind a proxy, export the following ENV variables (UPPER case)
@@ -303,14 +283,6 @@ $ helm delete kube-fledged -n ${KUBEFLEDGED_NAMESPACE} (if you deployed using He
303283
$ make remove-kubefledged-and-operator (if you deployed using Helm Operator)
304284
```
305285

306-
Note: To remove the _kube-fledged webhook server_ alone.
307-
308-
```
309-
$ make remove-webhook-server (if you deployed using YAML manifests)
310-
$ helm upgrade kube-fledged deploy/kubefledged-operator/helm-charts/kubefledged -n ${KUBEFLEDGED_NAMESPACE} --set webhookServer.enable=false --wait --debug (if you deployed using Helm chart)
311-
$ make remove-webhook-server-using-operator (if you deployed using Helm Operator)
312-
```
313-
314286
## How it works
315287

316288
Kubernetes allows developers to extend the kubernetes api via [Custom Resources](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/). _kube-fledged_ defines a custom resource of kind “ImageCache” and implements a custom controller (named _kubefledged-controller_). _kubefledged-controller_ does the heavy-lifting for managing image cache. Users can use kubectl commands for creation and deletion of ImageCache resources.
@@ -322,6 +294,8 @@ For more detailed description, go through _kube-fledged's_ [design proposal](doc
322294

323295
## Configuration Flags for Kubefledged Controller
324296

297+
`--cri-socket-path:` path to the cri socket on the node e.g. /run/containerd/containerd.sock (default: /var/run/docker.sock, /run/containerd/containerd.sock, /var/run/crio/crio.sock)
298+
325299
`--image-cache-refresh-frequency:` The image cache is refreshed periodically to ensure the cache is up to date. Setting this flag to "0s" will disable refresh. default "15m"
326300

327301
`--image-delete-job-host-network:` Whether the pod for the image delete job should be run with 'HostNetwork: true'. Default value: false.

cmd/controller/app/controller.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,8 @@ func NewController(
9999
serviceAccountName string,
100100
imageDeleteJobHostNetwork bool,
101101
jobPriorityClassName string,
102-
canDeleteJob bool) *Controller {
102+
canDeleteJob bool,
103+
criSocketPath string) *Controller {
103104

104105
runtime.Must(fledgedscheme.AddToScheme(scheme.Scheme))
105106
glog.V(4).Info("Creating event broadcaster")
@@ -125,7 +126,7 @@ func NewController(
125126
imageManager, _ := images.NewImageManager(controller.workqueue, controller.imageworkqueue,
126127
controller.kubeclientset, controller.fledgedNameSpace, imagePullDeadlineDuration,
127128
criClientImage, busyboxImage, imagePullPolicy, serviceAccountName, imageDeleteJobHostNetwork,
128-
jobPriorityClassName, canDeleteJob)
129+
jobPriorityClassName, canDeleteJob, criSocketPath)
129130
controller.imageManager = imageManager
130131

131132
glog.Info("Setting up event handlers")

0 commit comments

Comments
 (0)