Skip to content

Commit

Permalink
Merge pull request #14 from pwittrock/master
Browse files Browse the repository at this point in the history
Support generating docs in kubebuilder
  • Loading branch information
Phillip Wittrock committed Mar 21, 2018
2 parents a540df7 + 6d0f20b commit 0403dd0
Show file tree
Hide file tree
Showing 15 changed files with 507 additions and 331 deletions.
34 changes: 34 additions & 0 deletions build/apiserverbuilder/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Copyright 2018 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Build an image containing apiserver-builder for generating docs

FROM golang:1.10-stretch

ENV URL https://github.com/kubernetes-incubator/apiserver-builder/releases/download/v1.9-alpha.2
ENV BIN apiserver-builder-v1.9-alpha.2-linux-amd64.tar.gz
ENV DEST /usr/local/apiserver-builder/bin/
RUN curl -L $URL/$BIN -o /tmp/$BIN
RUN mkdir -p /usr/local/apiserver-builder
RUN tar -xzvf /tmp/$BIN -C /usr/local/apiserver-builder/

ENV PATH /usr/local/apiserver-builder/bin/:$PATH

RUN apt-get update
RUN apt-get install less -y
RUN apt-get install nano -yu

COPY docs.sh /usr/local/bin/docs.sh

CMD docs.sh
53 changes: 53 additions & 0 deletions build/apiserverbuilder/docs.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#!/usr/bin/env bash

# Copyright 2018 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

set -e
set -x

# Copy over the files from the host repo
export D=$DIR/$OUTPUT
mkdir -p $D

# Copy the api definitions
cp -r /host/repo/pkg $DIR/pkg

# Copy the docs
if [ -d "/host/repo/$OUTPUT" ]; then
cp -r /host/repo/$OUTPUT/* $D
fi
if [ ! -d "$DIR/boilerplate.go.txt" ]; then
touch $DIR/boilerplate.go.txt
else
cp /host/repo/boilerplate.go.txt $DIR/boilerplate.go.txt
fi

cd $DIR

# Generate the artifacts
apiserver-boot init repo --domain $DOMAIN
apiserver-boot build generated clean
apiserver-boot build generated

# Generate the input .md files for the docs
go build -o bin/apiserver cmd/apiserver/main.go
bin/apiserver --etcd-servers=http://localhost:2379 --secure-port=9443 --print-openapi --delegated-auth=false > $OUTPUT/openapi-spec/swagger.json
gen-apidocs --build-operations=false --use-tags=false --allow-errors --config-dir=$OUTPUT

# Copy the input files to the host
if [ ! -d "/host/repo/$OUTPUT" ]; then
mkdir -p /host/repo/$OUTPUT
fi
cp -r $OUTPUT/* /host/repo/$OUTPUT
14 changes: 14 additions & 0 deletions build/test.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
#!/usr/bin/env bash

# Copyright 2018 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

cp -r /workspace/_output/kubebuilder /tmp/kubebuilder/

# Tests won't work on darwin
Expand Down
14 changes: 14 additions & 0 deletions build/thirdparty/darwin/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
# Copyright 2018 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Build the following into binaries for darwin and then host them in a tar.gz file in an alpine image
# - apiserver
# - kubectl
Expand Down
14 changes: 14 additions & 0 deletions build/thirdparty/linux/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
# Copyright 2018 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Build the following into binaries for linux and then host them in a tar.gz file in an alpine image
# - apiserver
# - kubectl
Expand Down
11 changes: 6 additions & 5 deletions cmd/kubebuilder/build/build.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,28 +18,29 @@ package build

import (
"github.com/spf13/cobra"
"github.com/kubernetes-sigs/kubebuilder/cmd/kubebuilder/docs"
"github.com/kubernetes-sigs/kubebuilder/cmd/kubebuilder/generate"
)

var buildCmd = &cobra.Command{
Use: "build",
Short: "Command group for building source into artifacts.",
Long: `Command group for building source into artifacts.`,
Example: `# Generate code and build the apiserver and controller-manager binaries into bin/
kubebuilder build executables
kubebuilder build docs
# Rebuild generated code
kubebuilder build generated
`,
Run: RunBuild,
Deprecated: "`build generated` and `build docs` have been moved to `generate` and `docs`",
}

func AddBuild(cmd *cobra.Command) {
cmd.AddCommand(buildCmd)

AddBuildExecutables(buildCmd)
// AddBuildContainer(buildCmd)
AddDocs(buildCmd)
AddGenerate(buildCmd)
buildCmd.AddCommand(docs.GetDocs())
buildCmd.AddCommand(generate.GetGenerate())
}

func RunBuild(cmd *cobra.Command, args []string) {
Expand Down
99 changes: 0 additions & 99 deletions cmd/kubebuilder/build/build_executables.go

This file was deleted.

Loading

0 comments on commit 0403dd0

Please sign in to comment.