{"id":21888599,"url":"https://github.com/swisscom/containerdays-2024-krm","last_synced_at":"2025-10-13T20:08:52.900Z","repository":{"id":253382229,"uuid":"843317277","full_name":"swisscom/containerdays-2024-krm","owner":"swisscom","description":"Resources used for the ContainerDays 2024 Talk «Evolving GitOps: Harnessing Kubernetes Resource Model for 5G Core»","archived":false,"fork":false,"pushed_at":"2024-09-17T14:05:25.000Z","size":14097,"stargazers_count":11,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-15T10:51:06.240Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/swisscom.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,"zenodo":null}},"created_at":"2024-08-16T08:49:54.000Z","updated_at":"2025-01-18T10:55:25.000Z","dependencies_parsed_at":"2025-04-15T10:29:08.197Z","dependency_job_id":null,"html_url":"https://github.com/swisscom/containerdays-2024-krm","commit_stats":null,"previous_names":["swisscom/containerdays-2024-krm"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/swisscom/containerdays-2024-krm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swisscom%2Fcontainerdays-2024-krm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swisscom%2Fcontainerdays-2024-krm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swisscom%2Fcontainerdays-2024-krm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swisscom%2Fcontainerdays-2024-krm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/swisscom","download_url":"https://codeload.github.com/swisscom/containerdays-2024-krm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/swisscom%2Fcontainerdays-2024-krm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279016932,"owners_count":26085905,"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-13T02:00:06.723Z","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-28T11:16:01.736Z","updated_at":"2025-10-13T20:08:52.867Z","avatar_url":"https://github.com/swisscom.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ContainerDays 2024 Talk «Evolving GitOps: Harnessing Kubernetes Resource Model for 5G Core»: Config Hydration Examples\n\n## Authors\n\nPlease feel free to approach us with feedback and questions!\n\nAlexander North \u003calexander.north1@swisscom.com\u003e\nAshan Senevirathne \u003cashan.senevirathne@swisscom.com\u003e\nJoel Studler \u003cjoel.studler@swisscom.com\u003e\n\nContact us on slack:\n\n- \u003chttps://cloud-native.slack.com\u003e\n- \u003chttps://kubernetes.slack.com\u003e\n- \u003chttps://nephio.slack.com\u003e\n- \u003chttps://netdev-community.slack.com\u003e\n\n## Prepare Demo Environment\n\n### Kind with CRDs and local NetBox Operator instance\n\n```bash\nkind create cluster\nkubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.14.8/config/manifests/metallb-native.yaml\npushd operator\nmake install\npopd\n\npushd /tmp\ngit clone https://github.com/netbox-community/netbox-operator || echo \"already exists\"\npushd netbox-operator\nmake install\nmake create-kind\nmake deploy-kind\npopd\npopd\n```\n\n### Create the Prefix\n\nThis NetBox Prefix is required as an entrypoint for all our automation.\n\n```bash\ncat \u003c\u003cEOF | kubectl apply -f -\n---\napiVersion: netbox.dev/v1\nkind: Prefix\nmetadata:\n  name: parent-prefix\nspec:\n  prefix: \"10.0.0.0/16\"\n  preserveInNetbox: true\nEOF\nkubectl wait prefix parent-prefix --for=condition=Ready\nkubectl get prefix parent-prefix\nkubectl delete prefix parent-prefix  # to reduce confusion during the demo\n```\n\n## Hydration\n\nHere is where you will run the hydration using Ansible Playbook, Kform or the Kubernetes Operator. See the README.md in the subfolder.\n\nYou can manually test the functionality of MetalLB (without hydration) using:\n\n```bash\nkubectl apply -f expected-io/output-ipaddresspool.yaml\n```\n\n## Watch relevant resources in terminal\n\n```bash\nwatch -n .2 'echo \"ConfigMaps:\\n\" \u0026\u0026 kubectl get cm -A -l demo=input \u0026\u0026 echo \"\\n\\nConfigurations:\\n\" \u0026\u0026 kubectl get configurations -A \u0026\u0026 echo \"\\n\\nNetBox PrefixClaims, NetBox Prefixes, MetalLB IPAddressPools:\\n\" \u0026\u0026 kubectl get prefixclaim,prefix,ipaddresspool -A'\n```\n\n## Test after hydration is performed\n\n```bash\nfor i in {1..16}; do\n  kubectl create svc loadbalancer kform-test-${i} --tcp 80:80\ndone\nkubectl get svc | grep -v kubernetes\n```\n\n## Cleanup\n\n### Cleanup all test svc\n\n```bash\nkubectl get svc -oname | grep test | xargs -n1 kubectl delete\n```\n\n### Cleanup everything\n\n```bash\nkillall main\nkind delete cluster\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswisscom%2Fcontainerdays-2024-krm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fswisscom%2Fcontainerdays-2024-krm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswisscom%2Fcontainerdays-2024-krm/lists"}