{"id":27290131,"url":"https://github.com/girishg4t/k8sassignment","last_synced_at":"2025-04-11T21:27:33.471Z","repository":{"id":54291997,"uuid":"237161805","full_name":"girishg4t/k8sAssignment","owner":"girishg4t","description":null,"archived":false,"fork":false,"pushed_at":"2021-02-26T05:50:16.000Z","size":15318,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-03-05T12:37:01.717Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/girishg4t.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":"2020-01-30T07:34:06.000Z","updated_at":"2021-02-26T05:50:18.000Z","dependencies_parsed_at":"2022-08-13T11:10:30.045Z","dependency_job_id":null,"html_url":"https://github.com/girishg4t/k8sAssignment","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/girishg4t%2Fk8sAssignment","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/girishg4t%2Fk8sAssignment/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/girishg4t%2Fk8sAssignment/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/girishg4t%2Fk8sAssignment/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/girishg4t","download_url":"https://codeload.github.com/girishg4t/k8sAssignment/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248482194,"owners_count":21111288,"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","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":"2025-04-11T21:27:32.657Z","updated_at":"2025-04-11T21:27:33.443Z","avatar_url":"https://github.com/girishg4t.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"### Installing M7 application through helm chart\n\n#### Subchart :\nEach subchart can be enabled/disabled based on the condition specified in values.yaml file e.g.\n```\noracle:\n   enabled: false\nmongodb:\n   enabled: false\ntomcat:\n   enabled: true\n   ...\n```\n\nValues of each subchart can be overridden through parent helm chart\n\n```\nlibreoffice:\n   image:\n      registry: get.rnd.metricstream.com\n      pullPolicy: IfNotPresent\n\nactivemq:\n   image:\n      registry: get.rnd.metricstream.com\n      pullPolicy: IfNotPresent\n\n...\n\n```\n\n#### Parent chart creates below common resources :\n1) service account creation is condition based and name can be taken from values.yaml, if not specified it will be autogenerated\n2) Image pull secrets is created based on value specified in secrets.yaml file\n\n\nTo run the chart we can do :\n```\nhelm dependency update .\ncp secrets.sample.yaml secrets.yaml\n# Edit secrets.yaml with the credentials for registry\nhelm upgrade --install ms-app . -f secrets.yaml --set oracle.oracle.username=metricstream --set oracle.oracle.password=password -n dev\n\n```\n\n#### Pipeline pre -requisite\n1) k8s Cluster should should be up and running\n2) helm should be installed in the master node\n3) helm push plugin should be installed\n```\nhelm plugin install https://github.com/chartmuseum/helm-push\n\n```\n4) Passwordless connection between runner and master node\n------------------------------------------------------------------------\n## Kubernetes Assignment \n### Problem Statement\n\nCreate a controller to automatically create a Service resource for every new Deployment\nConsider the following constraints for creating the Service:  \n\n1) Service ports and targetPorts should be taken from pod.spec.containers.ports  \n2) If ports are not set for containers in the specs, consider port 8080 as a default port.  \n3) There should be a way to disable auto-creation of service by setting annotations.  \ne.g if \"auto-create-svc: false\" is set in the annotation of the parent resource (Deployment) spec, the controller should not create a service for that resource\n4) Default service type should be ClusterIP, but should be configurable through annotations of the parent resource (i.e Deployment)\n     e.g \"auto-create-svc-type: NodePort\"  \n5) The Services should get automatically removed when the parent resource - Deployment - is deleted  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgirishg4t%2Fk8sassignment","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgirishg4t%2Fk8sassignment","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgirishg4t%2Fk8sassignment/lists"}