diff --git a/Makefile b/Makefile index a3be5966..8b2d5f4d 100644 --- a/Makefile +++ b/Makefile @@ -210,7 +210,7 @@ deploy-using-operator: -kubectl create namespace ${OPERATOR_NAMESPACE} -kubectl create namespace ${KUBEFLEDGED_NAMESPACE} # Deploy the operator to a separate namespace - sed -i 's|{{OPERATOR_NAMESPACE}}|${OPERATOR_NAMESPACE}|g' deploy/kubefledged-operator/deploy/service_account.yaml + sed -i "s|{{OPERATOR_NAMESPACE}}|${OPERATOR_NAMESPACE}|g" deploy/kubefledged-operator/deploy/service_account.yaml sed -i "s|{{OPERATOR_NAMESPACE}}|${OPERATOR_NAMESPACE}|g" deploy/kubefledged-operator/deploy/clusterrole_binding.yaml sed -i "s|{{OPERATOR_NAMESPACE}}|${OPERATOR_NAMESPACE}|g" deploy/kubefledged-operator/deploy/operator.yaml kubectl apply -f deploy/kubefledged-operator/deploy/crds/charts.helm.k8s.io_kubefledgeds_crd.yaml @@ -219,11 +219,11 @@ deploy-using-operator: kubectl apply -f deploy/kubefledged-operator/deploy/clusterrole_binding.yaml kubectl apply -f deploy/kubefledged-operator/deploy/operator.yaml # Deploy kube-fledged to a separate namespace - sed -i "s|{{OPERATOR_NAMESPACE}}|${OPERATOR_NAMESPACE}|g" deploy/kubefledged-operator/deploy/crds/charts.helm.k8s.io_v1alpha1_kubefledged_cr.yaml - sed -i "s|{{KUBEFLEDGED_NAMESPACE}}|${KUBEFLEDGED_NAMESPACE}|g" deploy/kubefledged-operator/deploy/crds/charts.helm.k8s.io_v1alpha1_kubefledged_cr.yaml + sed -i "s|{{OPERATOR_NAMESPACE}}|${OPERATOR_NAMESPACE}|g" deploy/kubefledged-operator/deploy/crds/charts.helm.k8s.io_v1alpha2_kubefledged_cr.yaml + sed -i "s|{{KUBEFLEDGED_NAMESPACE}}|${KUBEFLEDGED_NAMESPACE}|g" deploy/kubefledged-operator/deploy/crds/charts.helm.k8s.io_v1alpha2_kubefledged_cr.yaml bash deploy/webhook-create-signed-cert.sh --namespace ${KUBEFLEDGED_NAMESPACE} bash deploy/webhook-patch-ca-bundle.sh - kubectl apply -f deploy/kubefledged-operator/deploy/crds/charts.helm.k8s.io_v1alpha1_kubefledged_cr.yaml + kubectl apply -f deploy/kubefledged-operator/deploy/crds/charts.helm.k8s.io_v1alpha2_kubefledged_cr.yaml update: kubectl scale deployment kubefledged-controller --replicas=0 -n kube-fledged @@ -239,14 +239,14 @@ remove-kubefledged: -kubectl delete -f deploy/kubefledged-crd.yaml -kubectl delete -f deploy/kubefledged-validatingwebhook.yaml -git checkout deploy/kubefledged-validatingwebhook.yaml - -git checkout deploy/kubefledged-operator/deploy/crds/charts.helm.k8s.io_v1alpha1_kubefledged_cr.yaml + -git checkout deploy/kubefledged-operator/deploy/crds/charts.helm.k8s.io_v1alpha2_kubefledged_cr.yaml remove-operator-and-kubefledged: # Remove kubefledged and the namespace - -kubectl delete -f deploy/kubefledged-operator/deploy/crds/charts.helm.k8s.io_v1alpha1_kubefledged_cr.yaml + -kubectl delete -f deploy/kubefledged-operator/deploy/crds/charts.helm.k8s.io_v1alpha2_kubefledged_cr.yaml -kubectl delete namespace ${KUBEFLEDGED_NAMESPACE} -git checkout deploy/kubefledged-validatingwebhook.yaml - -git checkout deploy/kubefledged-operator/deploy/crds/charts.helm.k8s.io_v1alpha1_kubefledged_cr.yaml + -git checkout deploy/kubefledged-operator/deploy/crds/charts.helm.k8s.io_v1alpha2_kubefledged_cr.yaml # Remove the kubefledged operator and the namespace -kubectl delete -f deploy/kubefledged-operator/deploy/operator.yaml -kubectl delete -f deploy/kubefledged-operator/deploy/clusterrole_binding.yaml diff --git a/build/Dockerfile.cri_client b/build/Dockerfile.cri_client index b1622b6b..38661ffb 100644 --- a/build/Dockerfile.cri_client +++ b/build/Dockerfile.cri_client @@ -15,7 +15,7 @@ ARG ALPINE_VERSION FROM alpine:$ALPINE_VERSION -RUN apk add --no-cache bash curl openssh-client +RUN apk update && apk add --no-cache bash curl openssh-client ARG DOCKER_VERSION ARG CRICTL_VERSION diff --git a/deploy/kubefledged-operator/deploy/crds/charts.helm.k8s.io_kubefledgeds_crd.yaml b/deploy/kubefledged-operator/deploy/crds/charts.helm.k8s.io_kubefledgeds_crd.yaml index a88b4865..fffdea3b 100644 --- a/deploy/kubefledged-operator/deploy/crds/charts.helm.k8s.io_kubefledgeds_crd.yaml +++ b/deploy/kubefledged-operator/deploy/crds/charts.helm.k8s.io_kubefledgeds_crd.yaml @@ -17,6 +17,6 @@ spec: type: object x-kubernetes-preserve-unknown-fields: true versions: - - name: v1alpha1 + - name: v1alpha2 served: true storage: true diff --git a/deploy/kubefledged-operator/deploy/crds/charts.helm.k8s.io_v1alpha2_kubefledged_cr.yaml b/deploy/kubefledged-operator/deploy/crds/charts.helm.k8s.io_v1alpha2_kubefledged_cr.yaml new file mode 100644 index 00000000..7039ff09 --- /dev/null +++ b/deploy/kubefledged-operator/deploy/crds/charts.helm.k8s.io_v1alpha2_kubefledged_cr.yaml @@ -0,0 +1,9 @@ +apiVersion: charts.helm.k8s.io/v1alpha2 +kind: KubeFledged +metadata: + name: kubefledged + namespace: {{OPERATOR_NAMESPACE}} +spec: + # Defaults defined in /helm-charts/kubefledged/values.yaml + kubefledgedNameSpace: {{KUBEFLEDGED_NAMESPACE}} + validatingWebhookCABundle: {{CA_BUNDLE}} diff --git a/deploy/kubefledged-operator/helm-charts/kubefledged/Chart.yaml b/deploy/kubefledged-operator/helm-charts/kubefledged/Chart.yaml index f758a96d..e0776586 100644 --- a/deploy/kubefledged-operator/helm-charts/kubefledged/Chart.yaml +++ b/deploy/kubefledged-operator/helm-charts/kubefledged/Chart.yaml @@ -1,4 +1,4 @@ -apiVersion: v2 +apiVersion: v3 name: kubefledged description: A Helm chart for Kubernetes diff --git a/deploy/kubefledged-operator/helm-charts/kubefledged/templates/NOTES.txt b/deploy/kubefledged-operator/helm-charts/kubefledged/templates/NOTES.txt index fac79dcb..4e0e223d 100644 --- a/deploy/kubefledged-operator/helm-charts/kubefledged/templates/NOTES.txt +++ b/deploy/kubefledged-operator/helm-charts/kubefledged/templates/NOTES.txt @@ -1,21 +1,3 @@ -1. Get the application URL by running these commands: -{{- if .Values.ingress.enabled }} -{{- range $host := .Values.ingress.hosts }} - {{- range .paths }} - http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ . }} - {{- end }} -{{- end }} -{{- else if contains "NodePort" .Values.service.type }} - export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "kubefledged.fullname" . }}) - export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") - echo http://$NODE_IP:$NODE_PORT -{{- else if contains "LoadBalancer" .Values.service.type }} - NOTE: It may take a few minutes for the LoadBalancer IP to be available. - You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "kubefledged.fullname" . }}' - export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "kubefledged.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") - echo http://$SERVICE_IP:{{ .Values.service.port }} -{{- else if contains "ClusterIP" .Values.service.type }} - export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "kubefledged.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") - echo "Visit http://127.0.0.1:8080 to use your application" - kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80 -{{- end }} +Kube-fledged installed successfully. +Refer to https://github.com/senthilrch/kube-fledged#how-to-use +Happy Image caching!! diff --git a/deploy/kubefledged-operator/helm-charts/kubefledged/templates/deployment-webhook-server.yaml b/deploy/kubefledged-operator/helm-charts/kubefledged/templates/deployment-webhook-server.yaml index 7a34102a..68ac1f6a 100644 --- a/deploy/kubefledged-operator/helm-charts/kubefledged/templates/deployment-webhook-server.yaml +++ b/deploy/kubefledged-operator/helm-charts/kubefledged/templates/deployment-webhook-server.yaml @@ -5,6 +5,9 @@ metadata: labels: {{- include "kubefledged.labels" . | nindent 4 }} namespace: {{ .Values.kubefledgedNameSpace }} + annotations: + "helm.sh/hook": pre-install,pre-upgrade + "helm.sh/hook-delete-policy": before-hook-creation spec: replicas: {{ .Values.replicaCount }} selector: diff --git a/deploy/kubefledged-operator/helm-charts/kubefledged/templates/tests/test-connection.yaml b/deploy/kubefledged-operator/helm-charts/kubefledged/templates/tests/test-connection.yaml index 365aebc4..6a6b5632 100644 --- a/deploy/kubefledged-operator/helm-charts/kubefledged/templates/tests/test-connection.yaml +++ b/deploy/kubefledged-operator/helm-charts/kubefledged/templates/tests/test-connection.yaml @@ -11,5 +11,5 @@ spec: - name: wget image: busybox command: ['wget'] - args: ['{{ include "kubefledged.fullname" . }}:{{ .Values.service.port }}'] + args: ['{{ include "kubefledged.webhookServiceName" . }}:{{ .Values.webhookService.port }}'] restartPolicy: Never diff --git a/deploy/kubefledged-operator/helm-charts/kubefledged/templates/validatingwebhook.yaml b/deploy/kubefledged-operator/helm-charts/kubefledged/templates/validatingwebhook.yaml index aae3232f..56a3e1ba 100644 --- a/deploy/kubefledged-operator/helm-charts/kubefledged/templates/validatingwebhook.yaml +++ b/deploy/kubefledged-operator/helm-charts/kubefledged/templates/validatingwebhook.yaml @@ -19,7 +19,7 @@ webhooks: rules: - operations: ["CREATE", "UPDATE"] apiGroups: ["kubefledged.io"] - apiVersions: ["v1alpha1"] + apiVersions: ["v1alpha2"] resources: ["imagecaches"] scope: "Namespaced" {{- end -}} \ No newline at end of file diff --git a/deploy/kubefledged-operator/watches.yaml b/deploy/kubefledged-operator/watches.yaml index f08cce01..d09e7c35 100644 --- a/deploy/kubefledged-operator/watches.yaml +++ b/deploy/kubefledged-operator/watches.yaml @@ -1,5 +1,5 @@ --- -- version: v1alpha1 +- version: v1alpha2 group: charts.helm.k8s.io kind: KubeFledged chart: helm-charts/kubefledged diff --git a/deploy/webhook-patch-ca-bundle.sh b/deploy/webhook-patch-ca-bundle.sh index 255e0e25..837e38ba 100644 --- a/deploy/webhook-patch-ca-bundle.sh +++ b/deploy/webhook-patch-ca-bundle.sh @@ -23,4 +23,4 @@ export CA_BUNDLE=$(kubectl config view --raw --flatten -o json | jq -r '.cluster #CA_DECODED=$(echo ${CA_BUNDLE} | base64 -d -) sed -i "s|{{CA_BUNDLE}}|${CA_BUNDLE}|g" deploy/kubefledged-validatingwebhook.yaml #sed -i "s|{{CA_BUNDLE}}|${CA_DECODED}|g" deploy/kubefledged-operator/deploy/crds/charts.helm.k8s.io_v1alpha1_kubefledged_cr.yaml -sed -i "s|{{CA_BUNDLE}}|${CA_BUNDLE}|g" deploy/kubefledged-operator/deploy/crds/charts.helm.k8s.io_v1alpha1_kubefledged_cr.yaml +sed -i "s|{{CA_BUNDLE}}|${CA_BUNDLE}|g" deploy/kubefledged-operator/deploy/crds/charts.helm.k8s.io_v1alpha2_kubefledged_cr.yaml