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

Disable default k8s services for AMI #70

Merged
merged 2 commits into from
Oct 15, 2024
Merged
Show file tree
Hide file tree
Changes from all 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
1 change: 1 addition & 0 deletions pkg/cloudinit/controlplane_init.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ func NewInitControlPlane(input InitControlPlaneInput) (CloudConfig, error) {
config.RunCommands = append(config.RunCommands, "/capi/scripts/install.sh")
}
config.RunCommands = append(config.RunCommands,
"/capi/scripts/disable-host-services.sh",
"/capi/scripts/bootstrap.sh",
"/capi/scripts/load-images.sh",
"/capi/scripts/wait-apiserver-ready.sh",
Expand Down
2 changes: 2 additions & 0 deletions pkg/cloudinit/controlplane_init_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ func TestNewInitControlPlane(t *testing.T) {
"prerun1",
"prerun2",
"/capi/scripts/install.sh",
"/capi/scripts/disable-host-services.sh",
"/capi/scripts/bootstrap.sh",
"/capi/scripts/load-images.sh",
"/capi/scripts/wait-apiserver-ready.sh",
Expand All @@ -76,6 +77,7 @@ func TestNewInitControlPlane(t *testing.T) {

// NOTE (mateoflorido): Keep this test in sync with the expected paths in the controlplane_init.go file.
g.Expect(config.WriteFiles).To(ConsistOf(
HaveField("Path", "/capi/scripts/disable-host-services.sh"),
HaveField("Path", "/capi/scripts/install.sh"),
HaveField("Path", "/capi/scripts/bootstrap.sh"),
HaveField("Path", "/capi/scripts/load-images.sh"),
Expand Down
1 change: 1 addition & 0 deletions pkg/cloudinit/controlplane_join.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ func NewJoinControlPlane(input JoinControlPlaneInput) (CloudConfig, error) {
config.RunCommands = append(config.RunCommands, "/capi/scripts/install.sh")
}
config.RunCommands = append(config.RunCommands,
"/capi/scripts/disable-host-services.sh",
"/capi/scripts/load-images.sh",
"/capi/scripts/join-cluster.sh",
"/capi/scripts/wait-apiserver-ready.sh",
Expand Down
2 changes: 2 additions & 0 deletions pkg/cloudinit/controlplane_join_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ func TestNewJoinControlPlane(t *testing.T) {
"prerun1",
"prerun2",
"/capi/scripts/install.sh",
"/capi/scripts/disable-host-services.sh",
"/capi/scripts/load-images.sh",
"/capi/scripts/join-cluster.sh",
"/capi/scripts/wait-apiserver-ready.sh",
Expand All @@ -58,6 +59,7 @@ func TestNewJoinControlPlane(t *testing.T) {
// NOTE (mateoflorido): Keep this test in sync with the expected paths in the controlplane_join.go file.
g.Expect(config.WriteFiles).To(ConsistOf(
HaveField("Path", "/capi/scripts/install.sh"),
HaveField("Path", "/capi/scripts/disable-host-services.sh"),
HaveField("Path", "/capi/scripts/bootstrap.sh"),
HaveField("Path", "/capi/scripts/load-images.sh"),
HaveField("Path", "/capi/scripts/join-cluster.sh"),
Expand Down
2 changes: 2 additions & 0 deletions pkg/cloudinit/embed.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ type script string
// you need to add it to the scripts map below.
var (
scriptInstall script = "install.sh"
scriptDisableHostServices script = "disable-host-services.sh"
scriptBootstrap script = "bootstrap.sh"
scriptLoadImages script = "load-images.sh"
scriptConfigureAuthToken script = "configure-auth-token.sh" // #nosec G101
Expand All @@ -39,6 +40,7 @@ var (
// scripts is a map of all embedded bash scripts used in the cloud-init.
scripts = map[script]string{
scriptInstall: mustEmbed(scriptInstall),
scriptDisableHostServices: mustEmbed(scriptDisableHostServices),
scriptBootstrap: mustEmbed(scriptBootstrap),
scriptLoadImages: mustEmbed(scriptLoadImages),
scriptConfigureAuthToken: mustEmbed(scriptConfigureAuthToken),
Expand Down
12 changes: 12 additions & 0 deletions pkg/cloudinit/scripts/disable-host-services.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/bash -xe

# Usage:
# $0
#
# Assumptions:
# - systemctl is available

for svc in kubelet containerd; do
systemctl stop "${svc}" || true
systemctl disable "${svc}" || true
done
1 change: 1 addition & 0 deletions pkg/cloudinit/worker_join.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ func NewJoinWorker(input JoinWorkerInput) (CloudConfig, error) {
config.RunCommands = append(config.RunCommands, "/capi/scripts/install.sh")
}
config.RunCommands = append(config.RunCommands,
"/capi/scripts/disable-host-services.sh",
"/capi/scripts/load-images.sh",
"/capi/scripts/join-cluster.sh",
"/capi/scripts/configure-node-token.sh",
Expand Down
2 changes: 2 additions & 0 deletions pkg/cloudinit/worker_join_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ func TestNewJoinWorker(t *testing.T) {
"prerun1",
"prerun2",
"/capi/scripts/install.sh",
"/capi/scripts/disable-host-services.sh",
"/capi/scripts/load-images.sh",
"/capi/scripts/join-cluster.sh",
"/capi/scripts/configure-node-token.sh",
Expand All @@ -58,6 +59,7 @@ func TestNewJoinWorker(t *testing.T) {
// NOTE (mateoflorido): Keep this test in sync with the expected paths in the worker_join.go file.
g.Expect(config.WriteFiles).To(ConsistOf(
HaveField("Path", "/capi/scripts/install.sh"),
HaveField("Path", "/capi/scripts/disable-host-services.sh"),
HaveField("Path", "/capi/scripts/bootstrap.sh"),
HaveField("Path", "/capi/scripts/load-images.sh"),
HaveField("Path", "/capi/scripts/join-cluster.sh"),
Expand Down
25 changes: 13 additions & 12 deletions templates/aws/template-variables.rc
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
# Kubernetes cluster configuration
export KUBERNETES_VERSION=v1.30.0
export CONTROL_PLANE_MACHINE_COUNT= # e.g. 1
export WORKER_MACHINE_COUNT=
export KUBERNETES_VERSION=v1.31.0
export CONTROL_PLANE_MACHINE_COUNT=3
export WORKER_MACHINE_COUNT=3

# AWS region
export AWS_REGION="" # e.g. "us-east-2"
export AWS_REGION="eu-central-1"

# AWS machine configuration
export AWS_CREATE_BASTION= # e.g. "true"
export AWS_PUBLIC_IP= # e.g. "true"
export AWS_CONTROL_PLANE_INSTANCE_TYPE= # e.g. "t3.large"
export AWS_NODE_INSTANCE_TYPE= # e.g. "t3.large"
export AWS_CONTROL_PLANE_ROOT_VOLUME_SIZE= # in Gigabyte, e.g. 16
export AWS_NODE_ROOT_VOLUME_SIZE= # in Gigabyte, e.g. 16
export AWS_SSH_KEY_NAME= # e.g. "default"
export AWS_AMI_ID= # e.g. "ami-0ad50e72a79228704"
export AWS_CREATE_BASTION="true"
export AWS_PUBLIC_IP="true"
export AWS_CONTROL_PLANE_INSTANCE_TYPE="t3.large"
export AWS_NODE_INSTANCE_TYPE="t3.large"
export AWS_CONTROL_PLANE_ROOT_VOLUME_SIZE=16
export AWS_NODE_ROOT_VOLUME_SIZE=16
export AWS_SSH_KEY_NAME="default"
# List upstream AMIs with clusterawsadm ami list --owner-id 819546954734
export AWS_AMI_ID="ami-027b534ab5d0b4886"
bschimke95 marked this conversation as resolved.
Show resolved Hide resolved

export AWS_CCM_IMAGE=registry.k8s.io/provider-aws/cloud-controller-manager:v1.28.3