{"id":19603943,"url":"https://github.com/kubermatic/kkp-single-node","last_synced_at":"2026-03-19T10:45:02.509Z","repository":{"id":41958391,"uuid":"455562038","full_name":"kubermatic/kkp-single-node","owner":"kubermatic","description":"Get started with KKP - “KKP on a single node with Kubeone on AWS”","archived":false,"fork":false,"pushed_at":"2022-04-22T05:42:42.000Z","size":408,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-11-21T10:23:45.786Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kubermatic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-02-04T13:42:35.000Z","updated_at":"2023-05-19T11:54:08.000Z","dependencies_parsed_at":"2022-08-12T00:40:31.489Z","dependency_job_id":null,"html_url":"https://github.com/kubermatic/kkp-single-node","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kubermatic/kkp-single-node","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubermatic%2Fkkp-single-node","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubermatic%2Fkkp-single-node/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubermatic%2Fkkp-single-node/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubermatic%2Fkkp-single-node/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kubermatic","download_url":"https://codeload.github.com/kubermatic/kkp-single-node/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubermatic%2Fkkp-single-node/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30078308,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T08:01:56.766Z","status":"ssl_error","status_checked_at":"2026-03-04T08:00:42.919Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T09:33:52.715Z","updated_at":"2026-03-04T10:31:26.363Z","avatar_url":"https://github.com/kubermatic.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Get started with KKP - “KKP on single node K1”\n\nKKP Master setup on a single master/worker k8s node using Kubeone. Leveraging the kubeone addons capability for this implementation.\n\nIn this **Get Started with KKP** guide, we will be using AWS Cloud as our underlying infrastructure and KKP release v2.18.4.\n\n\u003e For more information on the kubeone configurations for different enviornemnt, checkout the [Creating the kubernetes Cluster using Kubeone](https://docs.kubermatic.com/kubeone/master/tutorials/creating_clusters/) documentation.\n\n## Prerequisites\n\n1. [Terraform \u003ev1.0.0](https://www.terraform.io/downloads)\n2. [Kubeone](https://github.com/kubermatic/kubeone/releases/tag/v1.4.0)\n\n## Download the repository\n\nThe [kubermatic/kkp-single-node](https://github.com/kubermatic/kkp-single-node) contains the required configuration to install KKP on single node k8s with kubeone. Clone or download it, so that you deploy KKP quickly as per the following instructions and get started with it!\n\n```bash\ngit clone https://github.com/kubermatic/kkp-single-node.git\ncd kkp-single-node\n```\n\n## Configure the Enviornment\n\n```bash\nexport AWS_ACCESS_KEY_ID=xxxxxxxxxxxxxxx\nexport AWS_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxx\n# Path to your private SSH key. This is only used to configure SSH agent on your local machine.\nexport K1_SSH_PRIVATE_KEY_PATH=~/.ssh/id_rsa\n# Path to your public SSH key, copied over to the nodes for SSH access\nexport K1_SSH_PUBLIC_KEY_PATH=~/.ssh/id_rsa.pub\n```\n\n## Create the Infrastructure using Terraform\n\n```bash\nmake k1-tf-apply PROVIDER=aws\n```\n\n**You can update the terraform.tfvars with values such as `cluster_name`, `ssh_public_key_file`, `ssh_private_key_file`. More variables can be overridden here, see variables.tf.**\n\n\u003e **Important**: Add `untaint` flag with value as `true` in the `output.tf` file as shown below\n\n```bash\noutput \"kubeone_hosts\" {\n  description = \"Control plane endpoints to SSH to\"\n\n  value = {\n    control_plane = {\n      untaint              = true\n```\n\n## Prepare the KKP addon configuration\n\n\u003e Replace the TODO place holder in addons/kkp yaml definitions.\n\n```bash\nexport KKP_DNS=xxx.xxx.xxx.xxx\nexport KKP_USERNAME=xxxx@xxx.xxx\nexport RANDOM_SECRET=$(base64 \u003c /dev/urandom | tr -dc '[:alnum:]' | head -c32)\nexport ISSUERCOOKIEKEY=$(base64 \u003c /dev/urandom | tr -dc '[:alnum:]' | head -c32)\nexport SERVICEACCOUNTKEY=$(base64 \u003c /dev/urandom | tr -dc '[:alnum:]' | head -c32)\nmkdir -p ./aws/addons\ncp -r ./addons.template/kkp ./aws/addons\nsed -i 's/TODO_DNS/'\"$KKP_DNS\"'/g' ./aws/addons/kkp/*.yaml\nsed -i 's/TODO@email.com/'\"$KKP_USERNAME\"'/g' ./aws/addons/kkp/*.yaml\nsed -i 's/TODO-A-RANDOM-SECRET/'\"$RANDOM_SECRET\"'/g' ./aws/addons/kkp/*.yaml\nsed -i 's/TODO-KUBERMATIC-OAUTH-SECRET-FROM-VALUES.YAML/'\"$RANDOM_SECRET\"'/g' ./aws/addons/kkp/*.yaml\nsed -i 's/TODO-A-RANDOM-ISSUERCOOKIEKEY/'\"$ISSUERCOOKIEKEY\"'/g' ./aws/addons/kkp/*.yaml\nsed -i 's/TODO-A-RANDOM-SERVICEACCOUNTKEY/'\"$SERVICEACCOUNTKEY\"'/g' ./aws/addons/kkp/*.yaml\n```\n\n**KKP_DNS** specifies the domain where the kubermatic dashboard would be hosted.\n\n## Create k8s cluster using kubeone along with KKP master as an addon\n\n```bash\nmake k1-apply PROVIDER=aws\n```\n\n## Configure the Cluster access\n\n```bash\nexport KUBECONFIG=$PWD/aws/\u003ccluster_name\u003e-kubeconfig\n```\n\n## Validate the KKP Master setup\n\n- Get the LoadBalancer External IP by following command.\n\n  ```bash\n  kubectl get svc -n ingress-nginx\n  ```\n\n- Update DNS mapping with External IP of for nginx ingress controller service.\n\n- Nginx Ingress Controller Load Balancer configuration - Add the node to backend pool manually.\n  \u003e **Known Issue**: Should be supported in the future as part of Feature request[#1822](https://github.com/kubermatic/kubeone/issues/1822)\n\n- Verify the Kubermatic resources and certificates\n\n  ```bash\n  kubectl -n kubermatic get deployments,pods\n  ```\n\n  ```bash\n  kubectl get certificates -A -w\n  ```\n\n  \u003e Wait for a while, if still kubermatic-api-xxx pods / kubermatic \u0026 dex tls certificates are not in Ready state, delete  and wait to get validated.\n\n## Login to KKP Dashboard\n\nFinally, you should be able to login to KKP dashboard!\n\nLogin to \u003chttps://$TODO_DNS/\u003e\n\u003e Use username/password configured as part of Kubermatic configuration.\n\n## Cleanup the setup\n\n### Destroy the k8s cluster\n\n```bash\nmake k1-reset PROVIDER=aws\n```\n\n### Destroy the AWS infrastructure\n\n```bash\nmake k1-tf-destroy PROVIDER=aws\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkubermatic%2Fkkp-single-node","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkubermatic%2Fkkp-single-node","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkubermatic%2Fkkp-single-node/lists"}