{"id":19785704,"url":"https://github.com/cartyc/gke-and-cert-manager","last_synced_at":"2026-02-23T02:02:10.076Z","repository":{"id":74692963,"uuid":"375718093","full_name":"cartyc/gke-and-cert-manager","owner":"cartyc","description":null,"archived":false,"fork":false,"pushed_at":"2021-06-10T19:59:31.000Z","size":9,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-28T13:30:56.494Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cartyc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2021-06-10T14:02:59.000Z","updated_at":"2021-06-10T19:59:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"6af6bdf2-1a96-42f8-80b6-0e548e302a9f","html_url":"https://github.com/cartyc/gke-and-cert-manager","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cartyc/gke-and-cert-manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cartyc%2Fgke-and-cert-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cartyc%2Fgke-and-cert-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cartyc%2Fgke-and-cert-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cartyc%2Fgke-and-cert-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cartyc","download_url":"https://codeload.github.com/cartyc/gke-and-cert-manager/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cartyc%2Fgke-and-cert-manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281059645,"owners_count":26437056,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-26T02:00:06.575Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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-12T06:15:31.187Z","updated_at":"2025-10-26T04:32:55.358Z","avatar_url":"https://github.com/cartyc.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\nThis is repo is meant to be for Demonstration purposes only.\n\n## Create Kubernetes Cluster\n\nFor this demo we'll create a Private GKE cluster to deploy our app and cert-manager too.\n\nFirst up lets set our environment variables.\n\n```\nexport PROJECT_ID=$(gcloud config get-value project)\nexport NETWORK=knet # Name of Network to be Created\nexport SUBNET=knet-subnet # Name of Subnet to be created\nexport REGION=northamerica-northeast1-a # Montreal Region. Change to your preffered region.\nexport MACHINE_TYPE=e2-standard-4 \n\nexport CLUSTER=cert-manager\n```\n\nNow let's create the cluster\n\n```\ngcloud beta container clusters create $CLUSTER --enable-binauthz \\\n--machine-type $MACHINE_TYPE  --image-type cos_containerd --num-nodes 3 \\\n--enable-shielded-nodes --no-enable-basic-auth --enable-ip-alias --shielded-secure-boot \\\n--workload-pool ${PROJECT_ID}.svc.id.goog --network $NETWORK --create-subnetwork name=${SUBNET} --zone $REGION \\\n--enable-dataplane-v2 \\ # Cilium Container Network\n--enable-stackdriver-kubernetes \\\n--enable-private-nodes \\ # Omit this line and the next two if you don't need a private cluster\n--master-ipv4-cidr 172.16.0.32/28 \\\n--enable-master-authorized-networks --master-authorized-networks youreip/32\n```\n\n## Create the NAT (Ignore if you aren't using a private cluster)\n\nCreating the NAT will allow outbound internet connections so you will be able to download the required containers.\n```\ngcloud compute routers create nat-router \\\n    --network $NETWORK \\\n    --region $REGION\n\ngcloud compute routers nats create nat-config \\\n    --router-region $REGION \\\n    --router nat-router \\\n    --nat-all-subnet-ip-ranges \\\n    --auto-allocate-nat-external-ips\n```\n\n## Install Cert-Manager\n\nMore detailed installation options can be found in the cert-manager [docs](https://cert-manager.io/docs/installation/kubernetes/).\n\n```\nkubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.3.1/cert-manager.yaml\n```\n\n## Create a Static IP\n```\ngcloud compute addresses create cert-manager-demo \\\n    --global \\\n    --ip-version IPV4\n```\n\n## Update the Ingress and Apply the Kubernetes Configs\n\nIf you choose another name for the static IP you will need to update the `kubernetes.io/ingress.global-static-ip-name` in the ingress (`deploy/ingress.yaml`).\n\n```\n  name: demo-ingress\n  namespace: demo-app\n  annotations:\n    kubernetes.io/ingress.class: \"gce\"\n    cert-manager.io/cluster-issuer: letsencrypt-prod\n    acme.cert-manager.io/http01-edit-in-place: \"true\"\n    kubernetes.io/ingress.global-static-ip-name: \"cert-manager-demo\" \u003c-- Change me\n```\n\nOnce that is complete you can go ahead and apply your changes.\n\n```\nkubectl apply -f deploy/\n```\n\nIt should take 5-10 mins for the LB to spin up and get the cert applied. If you haven't already done so you should point your DNS to the generated static IP. To get the IP you can describe the address using gcloud `gcloud compute addresses describe cert-manager-demo --global` or by looking at the ingress resource created in GKE `kubectl get ingress`.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcartyc%2Fgke-and-cert-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcartyc%2Fgke-and-cert-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcartyc%2Fgke-and-cert-manager/lists"}