kmodules / resource-metadata

API for defining metadata about Kubernetes resources
Apache License 2.0
29 stars 0 forks source link

Add missing `ResourceDescriptor` and add connections to connection-less `ResourceDescriptor` #26

Open masudur-rahman opened 5 years ago

masudur-rahman commented 5 years ago

24 has some connection-less ResourceDescriptor

tamalsaha commented 4 years ago
            m.Group("/rbac.authorization.k8s.io/v1/clusterroles/:name", func() {
                m.Get("/clusterrolebindings", proxy.ListRoleBinding("ClusterRole", "clusterrolebindings"))
                m.Get("/rolebindings", proxy.ListRoleBinding("ClusterRole", "rolebindings"))
            }, reqGroup("rbac.authorization.k8s.io", "v1", "clusterroles"), reqResourceInterface())

            m.Group("/rbac.authorization.k8s.io/v1/namespaces/:namespace/roles/:name", func() {
                m.Get("/rolebindings", proxy.ListRoleBinding("Role", "rolebindings"))
            }, reqGroup("rbac.authorization.k8s.io", "v1", "roles"), reqResourceInterface())

            m.Group("/kubedb.com/v1alpha1/namespaces/:namespace/:resource/:name", func() {
                m.Get("/snapshots", proxy.ListSnapshots)
                m.Get("/services", proxy.ListServices)
                m.Get("/statefulsets", proxy.ListStatefulSets)
                m.Get("/deployments", proxy.ListDeployments)
            }, reqGroup("kubedb.com", "v1alpha1", ""), reqResourceInterface())

            m.Group("/kubevault.com/v1alpha1/namespaces/:namespace/:resource/:name", func() {
                m.Get("/services", proxy.ListServices)
                m.Get("/statefulsets", proxy.ListStatefulSets)
            }, reqGroup("kubevault.com", "v1alpha1", ""), reqResourceInterface())

            m.Group("/stash.appscode.com/v1alpha1/namespaces/:namespace/repositories/:name", func() {
                m.Get("/snapshots", proxy.ListSnapshots)
            }, reqGroup("stash.appscode.com", "v1alpha1", "repositories"), reqResourceInterface())

            m.Group("/extensions/v1beta1/namespaces/:namespace/ingresses/:name", func() {
                m.Get("/deployments", proxy.ListDeployments)
                m.Get("/daemonsets", proxy.ListDaemonsets)
                m.Get("/services", proxy.ListServices)
            }, reqGroup("extensions", "v1beta1", "ingresses"), reqResourceInterface())

            m.Group("/voyager.appscode.com/v1beta1/namespaces/:namespace/ingresses/:name", func() {
                m.Get("/deployments", proxy.ListDeployments)
                m.Get("/daemonsets", proxy.ListDaemonsets)
                m.Get("/services", proxy.ListServices)
            }, reqGroup("voyager.appscode.com", "v1beta1", "ingresses"), reqResourceInterface())

            m.Group("/monitoring.coreos.com/v1/namespaces/:namespace/servicemonitors", func() {
                m.Get("/:name/prometheuses", proxy.ReverseListPrometheuses)
            }, reqGroup("monitoring.coreos.com", "v1", "servicemonitors"), reqResourceInterface())

            m.Group("/monitoring.coreos.com/v1/namespaces/:namespace/prometheuses", func() {
                m.Get("/:name/servicemonitors", proxy.ListServiceMonitors)
            }, reqGroup("monitoring.coreos.com", "v1", "prometheuses"), reqResourceInterface())

            m.Get("/core/v1/namespaces/:namespace/pods/:name/pvc", reqGroup("core", "v1", "pods"), reqResourceInterface(), proxy.GetPersistentVolumeClaims)
            m.Get("/storage.k8s.io/v1/storageclasses/:name/pv", reqGroup("storage.k8s.io", "v1", "storageclasses"), reqResourceInterface(), proxy.GetPersistentVolumes)

                m.Get("/:name/pods", proxy.ListPods)
                m.Get("/:name/replicasets", proxy.ListReplicaSets)
                m.Get("/:name/services", proxy.ReverseListServices)
                m.Get("/:name/servicemonitors", proxy.ReverseListServiceMonitors)
                m.Get("/:name/machines", proxy.ListMachines)