-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
docs: add a simple local development guide #28
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,92 @@ | ||||||||||||||||
# Developer Guide | ||||||||||||||||
|
||||||||||||||||
## Install prerequisites | ||||||||||||||||
|
||||||||||||||||
1. Install make. | ||||||||||||||||
- `$ xcode-select --install` on macOS. | ||||||||||||||||
- `$ sudo apt-get install build-essential` on Ubuntu Linux | ||||||||||||||||
- `$ sudo dnf install make gcc` on Oracle Linux | ||||||||||||||||
1. Install [Go][go] | ||||||||||||||||
1. Install [KIND][kind] | ||||||||||||||||
- `$ GO111MODULE="on" go get sigs.k8s.io/[email protected]`. | ||||||||||||||||
Comment on lines
+10
to
+11
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||
1. Install [Kustomize][kustomize] | ||||||||||||||||
- [install instructions][kustomizelinux] | ||||||||||||||||
Comment on lines
+12
to
+13
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||
1. Install [envsubst][envsubst] | ||||||||||||||||
joekr marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||||||||
- `$ go get github.com/a8m/envsubst/cmd/envsubst` | ||||||||||||||||
Comment on lines
+14
to
+15
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||
|
||||||||||||||||
## Fork and get the source | ||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||
|
||||||||||||||||
Fork the [`cluster-api-provider-oci repo`](https://github.com/oracle/cluster-api-provider-oci). | ||||||||||||||||
See the [forking](https://docs.github.com/en/get-started/quickstart/fork-a-repo) and | ||||||||||||||||
[cloning](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) | ||||||||||||||||
documentation for more details. | ||||||||||||||||
Comment on lines
+19
to
+22
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||
|
||||||||||||||||
Example: | ||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||
```bash | ||||||||||||||||
cd "$(go env GOPATH)"/src | ||||||||||||||||
mkdir sigs.k8s.io | ||||||||||||||||
cd sigs.k8s.io/ | ||||||||||||||||
git clone [email protected]:<GITHUB USERNAME>/cluster-api-provider-oci.git | ||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||
cd cluster-api-provider-oci | ||||||||||||||||
git remote add upstream [email protected]:orale/cluster-api-provider-oci.git | ||||||||||||||||
git fetch upstream | ||||||||||||||||
Comment on lines
+30
to
+32
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. These three lines should be in a seperate code block from the lines above with the following line between:
|
||||||||||||||||
``` | ||||||||||||||||
joekr marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||||||||
|
||||||||||||||||
## Running a local management cluster for development | ||||||||||||||||
|
||||||||||||||||
The simplest way to test the code is to run it on your local development workstation. | ||||||||||||||||
If you have `capoci-controller-manager` running in your management cluster, | ||||||||||||||||
joekr marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||||||||||||
please scale down the deployment, otherwise running your development build will conflict with the | ||||||||||||||||
currently running `capoci-controller-manager`: | ||||||||||||||||
Comment on lines
+38
to
+40
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||
|
||||||||||||||||
```bash | ||||||||||||||||
kubectl scale deployment/capoci-controller-manager --replicas=0 -n cluster-api-provider-oci-system | ||||||||||||||||
``` | ||||||||||||||||
|
||||||||||||||||
To build, run and test all your code changes locally, copy the | ||||||||||||||||
`hack/auth-config-template.yaml` file to `<path-to-your-repo>/auth-config.yml` in your | ||||||||||||||||
cloned copy of the repository and modify it to match your local configuration. | ||||||||||||||||
Comment on lines
+46
to
+48
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||
|
||||||||||||||||
Then run the following commands: | ||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||
|
||||||||||||||||
```bash | ||||||||||||||||
export AUTH_CONFIG_DIR="<path-to-your-repo>/auth-config.yaml" | ||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||
make run | ||||||||||||||||
``` | ||||||||||||||||
|
||||||||||||||||
If you want to test your changes using an image built locally using `docker build`, execute the | ||||||||||||||||
following steps: | ||||||||||||||||
|
||||||||||||||||
```bash | ||||||||||||||||
export TAG=<tag> | ||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||
export REGISTRY="<region>.ocir.io/<namespace>" | ||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I would create a section on "demo values" and use specific values for There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I like this and think we will add it later as part of a larger document cleanup task. |
||||||||||||||||
make docker-build | ||||||||||||||||
``` | ||||||||||||||||
|
||||||||||||||||
`region` for example, `phx` or `us-phoenix-1`. See the | ||||||||||||||||
[Available Endpoints](https://docs.oracle.com/en-us/iaas/Content/Registry/Concepts/registryprerequisites.htm#Availab) | ||||||||||||||||
topic in the Oracle Cloud Infrastructure Registry (OCIR) documentation. | ||||||||||||||||
|
||||||||||||||||
`namespace` is the auto-generated [object storage namespace](https://docs.oracle.com/en-us/iaas/Content/Object/Tasks/understandingnamespaces.htm) | ||||||||||||||||
string of the tenancy (as shown on the tenancy information page) that owns the | ||||||||||||||||
repository to which you want to push the image. | ||||||||||||||||
|
||||||||||||||||
 | ||||||||||||||||
|
||||||||||||||||
Push the resulting container image to the repository. For more info on how to push | ||||||||||||||||
to OCIR see | ||||||||||||||||
<https://www.oracle.com/webfolder/technetwork/tutorials/obe/oci/registry/index.html> | ||||||||||||||||
|
||||||||||||||||
Execute the following steps to install the image | ||||||||||||||||
|
||||||||||||||||
```bash | ||||||||||||||||
make release-manifests | ||||||||||||||||
kubectl apply -f out/infrastructure-oci/v0.1.1-development/infrastructure-components.yaml | ||||||||||||||||
``` | ||||||||||||||||
|
||||||||||||||||
[go]: https://golang.org/doc/install | ||||||||||||||||
[go.mod]: https://github.com/kubernetes-sigs/cluster-api-provider-aws/blob/master/go.mod | ||||||||||||||||
[kind]: https://sigs.k8s.io/kind | ||||||||||||||||
[kustomize]: https://github.com/kubernetes-sigs/kustomize | ||||||||||||||||
[kustomizelinux]: https://github.com/kubernetes-sigs/kustomize/blob/master/docs/INSTALL.md | ||||||||||||||||
[envsubst]: https://github.com/a8m/envsubst |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
# see region identifier in https://docs.oracle.com/en-us/iaas/Content/General/Concepts/regions.htm | ||
# for a list of regions | ||
region: <region> | ||
tenancy: ocid1.tenancy.oc1..<unique_ID> | ||
user: ocid1.user.oc1..<unique_ID> | ||
key: | | ||
-----BEGIN RSA PRIVATE KEY----- | ||
<your_private_key> | ||
-----END RSA PRIVATE KEY----- | ||
fingerprint: <your_private_key_fingerprint> | ||
|
||
useInstancePrincipals: false | ||
joekr marked this conversation as resolved.
Show resolved
Hide resolved
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Try this:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The OSs are sorted alphabetically too.