Skip to content

Commit 019fa3c

Browse files
author
Phillip Wittrock
authored
Merge pull request #157 from pwittrock/pural
Allow plural resource names
2 parents 391d011 + 1909c53 commit 019fa3c

File tree

3 files changed

+17
-3
lines changed

3 files changed

+17
-3
lines changed

cmd/kubebuilder/create/resource/run.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ func AddCreateResource(cmd *cobra.Command) {
6262
createResourceCmd.Flags().BoolVar(&nonNamespacedKind, "non-namespaced", false, "if set, the API kind will be non namespaced")
6363
createResourceCmd.Flags().BoolVar(&controller, "controller", true, "if true, generate the controller code for the resource")
6464
createResourceCmd.Flags().BoolVar(&generate, "generate", true, "generate source code")
65+
createResourceCmd.Flags().BoolVar(&createutil.AllowPluralKind, "plural-kind", false, "allow the kind to be plural")
6566
cmd.AddCommand(createResourceCmd)
6667
}
6768

cmd/kubebuilder/create/util/util.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import (
3030

3131
var (
3232
GroupName, KindName, VersionName, ResourceName, Copyright string
33+
AllowPluralKind bool
3334
)
3435

3536
func ValidateResourceFlags() {
@@ -43,11 +44,14 @@ func ValidateResourceFlags() {
4344
if len(KindName) == 0 {
4445
log.Fatal("Must specify --kind")
4546
}
47+
48+
rs := inflect.NewDefaultRuleset()
4649
if len(ResourceName) == 0 {
47-
if inflect.NewDefaultRuleset().Pluralize(KindName) == KindName {
48-
log.Fatal("Client code generation expects singular --kind.")
50+
if !AllowPluralKind && rs.Pluralize(KindName) == KindName && rs.Singularize(KindName) != KindName {
51+
log.Fatalf("Client code generation expects singular --kind (e.g. %s)."+
52+
"Or to be run with --pural-kind=true.", rs.Singularize(KindName))
4953
}
50-
ResourceName = inflect.NewDefaultRuleset().Pluralize(strings.ToLower(KindName))
54+
ResourceName = rs.Pluralize(strings.ToLower(KindName))
5155
}
5256

5357
groupMatch := regexp.MustCompile("^[a-z]+$")

test.sh

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -538,6 +538,13 @@ function generate_resource_with_coretype_controller {
538538
update_controller_test
539539
}
540540

541+
function test_plural_resource {
542+
header_text "generating CRD for plural resource"
543+
544+
kubebuilder create resource --plural-kind=true --group testing --version v1beta1 --kind Metadata
545+
kubebuilder create resource --group testing --version v1beta1 --kind Postgress
546+
}
547+
541548
prepare_staging_dir
542549
fetch_tools
543550
build_kb
@@ -559,4 +566,6 @@ prepare_testdir_under_gopath
559566
generate_coretype_controller
560567
test_generated_controller
561568

569+
test_plural_resource
570+
562571
exit $rc

0 commit comments

Comments
 (0)