{"id":16703328,"url":"https://github.com/frafra/k3s-tutorial","last_synced_at":"2026-04-13T18:32:11.145Z","repository":{"id":66466093,"uuid":"254126783","full_name":"frafra/k3s-tutorial","owner":"frafra","description":"Personal notes - Learning how to use k3s","archived":false,"fork":false,"pushed_at":"2020-04-08T15:28:27.000Z","size":2,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-12-29T21:33:04.484Z","etag":null,"topics":["cert-manager","civo","k3s","kubernetes","letsencrypt","nginx"],"latest_commit_sha":null,"homepage":null,"language":null,"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/frafra.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-08T15:27:59.000Z","updated_at":"2022-03-15T20:46:51.000Z","dependencies_parsed_at":"2023-03-13T21:15:18.716Z","dependency_job_id":null,"html_url":"https://github.com/frafra/k3s-tutorial","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/frafra/k3s-tutorial","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frafra%2Fk3s-tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frafra%2Fk3s-tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frafra%2Fk3s-tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frafra%2Fk3s-tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/frafra","download_url":"https://codeload.github.com/frafra/k3s-tutorial/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frafra%2Fk3s-tutorial/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31766405,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T15:25:13.801Z","status":"ssl_error","status_checked_at":"2026-04-13T15:25:09.162Z","response_time":93,"last_error":"SSL_read: 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":["cert-manager","civo","k3s","kubernetes","letsencrypt","nginx"],"created_at":"2024-10-12T19:07:55.290Z","updated_at":"2026-04-13T18:32:11.125Z","avatar_url":"https://github.com/frafra.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"These notes are made mostly for myself, for didactical purposes. Pull requests are welcome.\n\n# Create a k3s cluster\n\n## ...on Civo\n\n```\ncivo k3s create test --remove-applications=traefik --nodes=1 --size=g2.xsmall --wait --save --switch\n```\n\nTraefik 2 is not supported on k3s; valid alternatives exist: https://github.com/rancher/k3s/issues/817\n\n## ...on VPS or bare metal\n\nSee: https://github.com/alexellis/k3sup\n\n# Deploy something on k3s\n\n## Preparation\n\nPlease be sure that your DNS is configured properly and install Helm.\n\n## Setup nginx\n\nThis step is required if Traefik has been removed.\n\n```\nhelm repo add nginx-stable https://helm.nginx.com/stable\nhelm repo update\nhelm install nginx nginx-stable/nginx-ingress\n```\n\nReference: https://docs.nginx.com/nginx-ingress-controller/installation/installation-with-helm/#installing-the-chart\n\n## Deploy a service\n\nReferences:\n- https://docs.nginx.com/nginx-ingress-controller/configuration/ingress-resources/basic-configuration/\n\n```\nkubectl apply -f is-osm-uptodate.yaml\n```\n\nTest if the service is reachable over HTTP.\n\n## Setup SSL\n\n```\nkubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v0.14.1/cert-manager.crds.yaml\nkubectl create namespace cert-manager\nhelm repo add jetstack https://charts.jetstack.io\nhelm repo update\nhelm install \\\n  cert-manager jetstack/cert-manager \\\n  --namespace cert-manager \\\n  --version v0.14.1\n```\n\nReferences:\n- https://cert-manager.io/docs/installation/kubernetes/#installing-with-helm\n\nAn alternative way to create a namespace is to apply the following YAML file:\n```\napiVersion: v1\nkind: Namespace\nmetadata:\n  name: cert-manager\n```\n\n### Setup letsencrypt\n\n\nReferences:\n- https://cert-manager.io/docs/configuration/acme/#creating-a-basic-acme-issuer\n- https://letsencrypt.org/docs/acme-protocol-updates/#acme-v2-rfc-8555\n\n```\nkubectl apply -f letsencrypt-staging.yaml\nkubectl apply -f letsencrypt.yaml\n```\n\n## Use SSL\n\nUncomment the TLS section of `is-osm-uptodate.yaml` and the line referring to `letsencrypt-staging`, then update the deployment.\n\n```\nkubectl apply -f is-osm-uptodate.yaml\n```\n\nTry to connect over HTTPS and check if the fake certificate has been generated:\n\n```\nkubectl get secrets is-osm-uptodate-tls -o yaml | grep tls\\.crt | awk '{ print $2 }' | base64 -d \u003e cert\nopenssl x509 -in cert -text\n```\n\nSwitch to the real letsencrypt certificate by commenting the line with `letsencrypt-staging` and uncommenting the following one, then update the deployment:\n\n```\nkubectl apply -f is-osm-uptodate.yaml\n```\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrafra%2Fk3s-tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrafra%2Fk3s-tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrafra%2Fk3s-tutorial/lists"}