Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Install crictl in Agent containers #418

Merged
merged 9 commits into from
Nov 23, 2021
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 3 additions & 27 deletions .github/workflows/run-test-cases.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,58 +105,40 @@ jobs:
kube:
- runtime: MicroK8s-1.16
version: 1.16/stable
crictl: v1.16.0
- runtime: MicroK8s-1.17
version: 1.17/stable
crictl: v1.16.0
- runtime: MicroK8s-1.18
version: 1.18/stable
crictl: v1.17.0
- runtime: MicroK8s-1.19
version: 1.19/stable
crictl: v1.17.0
- runtime: MicroK8s-1.20
version: 1.20/stable
crictl: v1.17.0
- runtime: MicroK8s-1.21
version: 1.21/stable
crictl: v1.17.0
- runtime: K3s-1.16
version: v1.16.14+k3s1
crictl: v1.16.0
- runtime: K3s-1.17
version: v1.17.17+k3s1
crictl: v1.16.0
- runtime: K3s-1.18
version: v1.18.9+k3s1
crictl: v1.17.0
- runtime: K3s-1.19
version: v1.19.10+k3s1
crictl: v1.17.0
- runtime: K3s-1.20
version: v1.20.6+k3s1
crictl: v1.17.0
- runtime: K3s-1.21
version: v1.21.5+k3s1
crictl: v1.17.0
- runtime: Kubernetes-1.16
version: 1.16.15-00
crictl: UNUSED
- runtime: Kubernetes-1.17
version: 1.17.14-00
crictl: UNUSED
- runtime: Kubernetes-1.18
version: 1.18.12-00
crictl: UNUSED
- runtime: Kubernetes-1.19
version: 1.19.4-00
crictl: UNUSED
- runtime: Kubernetes-1.20
version: 1.20.1-00
crictl: UNUSED
- runtime: Kubernetes-1.21
version: 1.21.0-00
crictl: UNUSED
test:
- case: end-to-end
file: test/run-end-to-end.py
Expand Down Expand Up @@ -209,10 +191,7 @@ jobs:
sudo chmod g+r /etc/rancher/k3s/k3s.yaml
sudo chmod 666 /etc/rancher/k3s/*
mkdir -p ~/.kube/ && cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
curl -L https://github.com/kubernetes-sigs/cri-tools/releases/download/${{ matrix.kube.crictl }}/crictl-${{ matrix.kube.crictl }}-linux-amd64.tar.gz --output crictl-${{ matrix.kube.crictl }}-linux-amd64.tar.gz
sudo tar zxvf crictl-${{ matrix.kube.crictl }}-linux-amd64.tar.gz -C /usr/local/bin
rm -f crictl-${{ matrix.kube.crictl }}-linux-amd64.tar.gz
echo "--set agent.host.crictl=/usr/local/bin/crictl --set agent.host.dockerShimSock=/run/k3s/containerd/containerd.sock" > /tmp/cri_args_to_test.txt
echo "--set agent.host.dockerShimSock=/run/k3s/containerd/containerd.sock" > /tmp/cri_args_to_test.txt
echo 'kubectl' > /tmp/runtime_cmd_to_test.txt
echo '~/.kube/config' > /tmp/kubeconfig_path_to_test.txt
until kubectl get node ${HOSTNAME,,} -o jsonpath='{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status}' | grep 'Ready=True'; do echo "waiting for k3s to become ready"; sleep 10; done
Expand Down Expand Up @@ -249,7 +228,7 @@ jobs:
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl taint nodes --all node-role.kubernetes.io/master-
echo '--set agent.host.crictl=/usr/bin/crictl --set agent.host.dockerShimSock=/var/run/dockershim.sock' > /tmp/cri_args_to_test.txt
echo '--set agent.host.dockerShimSock=/var/run/dockershim.sock' > /tmp/cri_args_to_test.txt
echo 'kubectl' > /tmp/runtime_cmd_to_test.txt
echo '~/.kube/config' > /tmp/kubeconfig_path_to_test.txt
until kubectl get node ${HOSTNAME,,} -o jsonpath='{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status}' | grep 'Ready=True'; do echo "waiting for kubernetes to become ready"; sleep 10; done
Expand Down Expand Up @@ -277,10 +256,7 @@ jobs:
sudo sed -i 's/memory.available<100Mi,nodefs.available<1Gi,imagefs.available<1Gi/memory.available<25Mi,nodefs.available<50Mi,imagefs.available<50Mi/' /var/snap/microk8s/current/args/kubelet
sudo systemctl restart snap.microk8s.daemon-kubelet
until sudo microk8s.status --wait-ready; do sleep 5s; echo "Try again"; done
curl -L https://github.com/kubernetes-sigs/cri-tools/releases/download/${{ matrix.kube.crictl }}/crictl-${{ matrix.kube.crictl }}-linux-amd64.tar.gz --output crictl-${{ matrix.kube.crictl }}-linux-amd64.tar.gz
sudo tar zxvf crictl-${{ matrix.kube.crictl }}-linux-amd64.tar.gz -C /usr/local/bin
rm -f crictl-${{ matrix.kube.crictl }}-linux-amd64.tar.gz
echo '--set agent.host.crictl=/usr/local/bin/crictl --set agent.host.dockerShimSock=/var/snap/microk8s/common/run/containerd.sock' > /tmp/cri_args_to_test.txt
echo '--set agent.host.dockerShimSock=/var/snap/microk8s/common/run/containerd.sock' > /tmp/cri_args_to_test.txt
echo 'microk8s kubectl' > /tmp/runtime_cmd_to_test.txt
echo '~/.kube/config' > /tmp/kubeconfig_path_to_test.txt

Expand Down
28 changes: 14 additions & 14 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion agent/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "agent"
version = "0.7.5"
version = "0.7.6"
authors = ["Kate Goldenring <[email protected]>", "<[email protected]>"]
edition = "2018"

Expand Down
11 changes: 10 additions & 1 deletion build/containers/Dockerfile.agent
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,16 @@ RUN echo "Using Rust binaries from ${CROSS_BUILD_TARGET}/${BUILD_TYPE}"
# Link the container to the Akri repository
LABEL org.opencontainers.image.source https://github.com/project-akri/akri

RUN apt-get update && apt-get install -y --no-install-recommends libssl-dev openssl && apt-get clean
RUN apt-get update && apt-get install -y --no-install-recommends libssl-dev openssl curl ca-certificates && apt-get clean

COPY ./target/${CROSS_BUILD_TARGET}/${BUILD_TYPE}/agent /agent

# Install crictl
RUN VERSION="v1.17.0" && \
bfjelds marked this conversation as resolved.
Show resolved Hide resolved
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why did you pick 1.17? We had problems using older crictl against newer clusters.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the version we have been using in our e2e tests and documentation.

We also may want to consider using a more recent version of crictl and add updating it to our release cycle.

I think our next release we can consider moving to a newer version

curl -L https://github.com/kubernetes-sigs/cri-tools/releases/download/$VERSION/crictl-$VERSION-linux-amd64.tar.gz --output crictl-$VERSION-linux-amd64.tar.gz && \
tar zxvf crictl-$VERSION-linux-amd64.tar.gz -C /usr/local/bin && \
rm -f crictl-$VERSION-linux-amd64.tar.gz && \
apt-get remove -y curl ca-certificates && apt-get clean
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we merge the two RUNs? Otherwise curl/ca-certs will be part of the akri layers and contribute to the overall size.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I condensed them in 75f8467 but it didn't decrease the size at all interestingly. Still 161 MB

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting. Do we know ca-certs and curl were not in the initial image to begin with or installed as dependencies of the other packages we are installing?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am pretty sure they werent there because it would not install until i added them


ENV RUST_LOG agent,akri_shared
CMD ["./agent"]
10 changes: 9 additions & 1 deletion build/containers/Dockerfile.agent-full
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,15 @@ RUN echo "Using Rust binaries from ${CROSS_BUILD_TARGET}/${BUILD_TYPE}"
# Link the container to the Akri repository
LABEL org.opencontainers.image.source https://github.com/project-akri/akri

RUN apt-get update && apt-get install -y --no-install-recommends libssl-dev openssl && apt-get clean
RUN apt-get update && apt-get install -y --no-install-recommends libssl-dev openssl curl ca-certificates && apt-get clean

# Install crictl
RUN VERSION="v1.17.0" && \
curl -L https://github.com/kubernetes-sigs/cri-tools/releases/download/$VERSION/crictl-$VERSION-linux-amd64.tar.gz --output crictl-$VERSION-linux-amd64.tar.gz && \
tar zxvf crictl-$VERSION-linux-amd64.tar.gz -C /usr/local/bin && \
rm -f crictl-$VERSION-linux-amd64.tar.gz && \
apt-get remove -y curl ca-certificates && apt-get clean

COPY ./target/${CROSS_BUILD_TARGET}/${BUILD_TYPE}/agent-full /agent
ENV RUST_LOG agent,akri_shared,akri_debug_echo
CMD ["./agent"]
2 changes: 1 addition & 1 deletion controller/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "controller"
version = "0.7.5"
version = "0.7.6"
authors = ["<[email protected]>"]
edition = "2018"

Expand Down
4 changes: 2 additions & 2 deletions deployment/helm/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.7.5
version: 0.7.6

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
appVersion: 0.7.5
appVersion: 0.7.6
7 changes: 1 addition & 6 deletions deployment/helm/templates/agent.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ spec:
value: {{ .Values.debugEcho.configuration.shared | quote }}
{{- end }}
- name: HOST_CRICTL_PATH
value: /host/usr/bin/crictl
value: /usr/local/bin/crictl
- name: HOST_RUNTIME_ENDPOINT
value: unix:///host/var/run/dockershim.sock
- name: HOST_IMAGE_ENDPOINT
Expand All @@ -79,8 +79,6 @@ spec:
mountPath: /var/lib/akri
- name: device-plugin
mountPath: /var/lib/kubelet/device-plugins
- name: usr-bin-crictl
mountPath: /host/usr/bin/crictl
- name: var-run-dockershim
mountPath: /host/var/run/dockershim.sock
{{- if .Values.agent.host.udev }}
Expand All @@ -103,9 +101,6 @@ spec:
- name: device-plugin
hostPath:
path: "{{ .Values.agent.host.kubeletDevicePlugins }}"
- name: usr-bin-crictl
hostPath:
path: "{{ .Values.agent.host.crictl }}"
- name: var-run-dockershim
hostPath:
path: "{{ .Values.agent.host.dockerShimSock }}"
Expand Down
2 changes: 0 additions & 2 deletions deployment/helm/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,6 @@ agent:
discoveryHandlers: /var/lib/akri
# kubeletDevicePlugins is the location of the kubelet device-plugin sockets
kubeletDevicePlugins: /var/lib/kubelet/device-plugins
# crictl is the node path to crictl
crictl: /usr/bin/crictl
# dockerShimSock is the node path of the docker socket
dockerShimSock: /var/run/dockershim.sock
# udev is the node path of udev, usually at `/run/udev`
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "debug-echo-discovery-handler"
version = "0.7.5"
version = "0.7.6"
authors = ["Kate Goldenring <[email protected]>"]
edition = "2018"

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "onvif-discovery-handler"
version = "0.7.5"
version = "0.7.6"
authors = ["Kate Goldenring <[email protected]>"]
edition = "2018"

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "opcua-discovery-handler"
version = "0.7.5"
version = "0.7.6"
authors = ["Kate Goldenring <[email protected]>"]
edition = "2018"

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "udev-discovery-handler"
version = "0.7.5"
version = "0.7.6"
authors = ["Kate Goldenring <[email protected]>"]
edition = "2018"

Expand Down
2 changes: 1 addition & 1 deletion discovery-handlers/debug-echo/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "akri-debug-echo"
version = "0.7.5"
version = "0.7.6"
authors = ["Kate Goldenring <[email protected]>"]
edition = "2018"

Expand Down
2 changes: 1 addition & 1 deletion discovery-handlers/onvif/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "akri-onvif"
version = "0.7.5"
version = "0.7.6"
authors = ["Kate Goldenring <[email protected]>"]
edition = "2018"

Expand Down
2 changes: 1 addition & 1 deletion discovery-handlers/opcua/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "akri-opcua"
version = "0.7.5"
version = "0.7.6"
authors = ["Kate Goldenring <[email protected]>"]
edition = "2018"

Expand Down
2 changes: 1 addition & 1 deletion discovery-handlers/udev/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "akri-udev"
version = "0.7.5"
version = "0.7.6"
authors = ["Kate Goldenring <[email protected]>"]
edition = "2018"

Expand Down
2 changes: 1 addition & 1 deletion discovery-utils/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "akri-discovery-utils"
version = "0.7.5"
version = "0.7.6"
authors = ["Kate Goldenring <[email protected]>"]
edition = "2018"

Expand Down
2 changes: 1 addition & 1 deletion samples/brokers/udev-video-broker/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "udev-video-broker"
version = "0.7.5"
version = "0.7.6"
authors = ["Kate Goldenring <[email protected]>", "<[email protected]>"]
edition = "2018"

Expand Down
Loading