Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
f3fb952
Added 'creates a service instance and binding' test to dev catalog e2…
dtaylor113 Jan 21, 2019
05f655b
devconsole: setup sub-dir with OWNERS file
christianvogt Feb 11, 2019
0bf25a4
Fix runtime error on machine deployment details page
TheRealJon Feb 14, 2019
890ef12
Change dropdown units for consistency
zherman0 Feb 26, 2019
9d0aa2d
Align line-height for copy-to-clipboard to match height of copy button
jhadvig Feb 27, 2019
a74aa1e
Apply table--layout-fixed to images table on nodes page to prevent lo…
sg00dwin Feb 21, 2019
72bab4b
Add Azure Red Hat OpenShift branding option
rhamilto Feb 26, 2019
ea38644
Merge pull request #1234 from jhadvig/clipboard-style
openshift-merge-robot Feb 28, 2019
cb7ca10
Update README for OpenShift 4.0 and CI changes
spadgett Feb 25, 2019
fd387a5
Show community operators, warn on details
jeff-phillips-18 Feb 4, 2019
4d3dbc7
Add a badge to indicate community operators, sort categories
jeff-phillips-18 Feb 13, 2019
7aa738e
Merge pull request #1212 from sg00dwin/image-table-fixed-layout
openshift-merge-robot Feb 28, 2019
9d59243
Merge pull request #1187 from TheRealJon/CONSOLE-1277
openshift-merge-robot Mar 1, 2019
677e482
Merge pull request #1219 from spadgett/readme-updates
openshift-merge-robot Mar 1, 2019
6e1c97c
Merge pull request #1228 from zherman0/1209
openshift-merge-robot Mar 1, 2019
24942e8
Merge pull request #1178 from jeff-phillips-18/community-operators
openshift-merge-robot Mar 1, 2019
db9f8ea
frontend: Change CRD link and update kebab/actions
rebeccaalpert Feb 26, 2019
cb4fd3e
Monitoring: Add metric graphs to Alert and Rule details pages
kyoto Feb 22, 2019
652b410
Bug 1685006: Show mock resource quota page when user has no projects
spadgett Mar 4, 2019
fc52867
Bug 1683890 - Runtime error when encoding Unicode string
jhadvig Mar 1, 2019
3fe986f
Fix bug where position of .co-m-modal-link icon differed across browsers
rhamilto Mar 5, 2019
1387183
Remove orphaned methods from NavSection
rhamilto Mar 5, 2019
e950472
Fix bug where Operator Hub empty state background did not fill viewport
rhamilto Mar 5, 2019
da7c477
Updating: fixed bugzilla 1669300
gallettilance Feb 27, 2019
2e1a4a9
Bug 1685802 - Fix when no externalMetadata for displayName when Creat…
dtaylor113 Mar 6, 2019
0805b1e
Bandaid fix OperatorHub tests for etcd operator
Mar 6, 2019
960e3d8
Merge pull request #1255 from SamiSousa/operator-hub-tests
openshift-merge-robot Mar 7, 2019
ad3b3f0
Merge pull request #1250 from spadgett/quota-page-mock
openshift-merge-robot Mar 7, 2019
101eb4b
Merge pull request #1256 from dtaylor113/bug_1685802_fix_no_externalM…
openshift-merge-robot Mar 7, 2019
e3bf781
Merge pull request #1252 from rhamilto/remove-orphaned-methods
openshift-merge-robot Mar 7, 2019
c40d0c5
Merge pull request #1235 from galletti94/provider-name
openshift-merge-robot Mar 7, 2019
88aa7a8
Monitoring: Disable Alerts Firing link if user can't access Monitoring
kyoto Mar 7, 2019
016c916
Merge pull request #1253 from rhamilto/operator-hub-empty-state
openshift-merge-robot Mar 7, 2019
554d644
Correctly show cluster operator operand versions
spadgett Feb 28, 2019
91d3e2d
Merge pull request #1245 from jhadvig/BZ1683890
openshift-merge-robot Mar 7, 2019
9c9ee6b
Make overview sidebar resource name a link
sg00dwin Feb 19, 2019
099eb0c
Fix bug where update link lacked modal decorator
rhamilto Mar 7, 2019
0b5d719
Merge pull request #1265 from rhamilto/updates-available
openshift-merge-robot Mar 7, 2019
1006d4f
Bug 1683755: Switch icon for updating clusters
spadgett Feb 28, 2019
4ffdc46
Merge pull request #1251 from rhamilto/console-1311
openshift-merge-robot Mar 8, 2019
42139fd
Rebuild http.Client for each code exchange
enj Mar 8, 2019
11d92b5
Merge pull request #1266 from enj/enj/i/reload_client
openshift-merge-robot Mar 8, 2019
3c9b165
Increase size of default pull secret modal
rhamilto Mar 8, 2019
d35a209
Reload OAuth config at every point of use
enj Mar 8, 2019
4da6690
Align kubeconfig output with CLI
rhamilto Mar 7, 2019
c1dbda7
Fix position of co-m-modal-link icon when also btn-link
rhamilto Mar 8, 2019
f85e4fd
Merge pull request #1241 from spadgett/upgrade-icon
openshift-merge-robot Mar 8, 2019
6645c67
Add form to configure HTPasswd IDP
spadgett Jan 4, 2019
df9b3c5
Fix to correctly filter CSVs when navigating from Operator details di…
jeff-phillips-18 Mar 8, 2019
706ade9
Merge pull request #1239 from spadgett/operand-versions
openshift-merge-robot Mar 8, 2019
07318e4
Merge pull request #1270 from rhamilto/default-pull-secret-modal-size
openshift-merge-robot Mar 8, 2019
ba23cd6
Merge pull request #1205 from sg00dwin/resource-heading-link-in-sidebar
openshift-merge-robot Mar 9, 2019
f33ec92
Merge pull request #1233 from rhamilto/azure-branding
openshift-merge-robot Mar 9, 2019
e1d53f3
Merge pull request #1242 from spadgett/htpasswd
openshift-merge-robot Mar 9, 2019
8c8c58f
Merge pull request #1257 from kyoto/monitoring-disable-alerts-firing-…
openshift-merge-robot Mar 9, 2019
44dbdec
auth: change back-off interval when connecting to OAuth server on sta…
spadgett Mar 9, 2019
7df41c1
Merge pull request #1262 from rhamilto/kubeconfig-ordering
openshift-merge-robot Mar 9, 2019
155c239
Merge pull request #1273 from rhamilto/co-m-modal-link-btn-link
openshift-merge-robot Mar 9, 2019
0f517f0
Merge pull request #1274 from jeff-phillips-18/fixes
openshift-merge-robot Mar 9, 2019
89802b1
Merge pull request #1227 from rebeccaalpert/crd-link-updates
openshift-merge-robot Mar 9, 2019
4c4828f
Merge pull request #1275 from spadgett/auth-backoff
openshift-merge-robot Mar 9, 2019
6c2164b
Merge pull request #1237 from kyoto/query-browser-alert-graph
openshift-merge-robot Mar 9, 2019
3d8b12c
Change Summary Page showPodSelector property to not show the pod sele…
jcaianirh Feb 25, 2019
6d9ed5a
toggle showNodeSelector default in details view
jcaianirh Mar 7, 2019
1ecf467
updates based on code review
jcaianirh Mar 8, 2019
e9e6e21
Merge pull request #1225 from jcaianirh/console-1289
openshift-merge-robot Mar 9, 2019
8d9f0a3
Bump patternfly* to latest versions to pick up bug fixes
rhamilto Jan 9, 2019
dcadd6c
Change Operator Hub to OperatorHub
TheRealJon Feb 14, 2019
4aefc9e
Merge pull request #1192 from TheRealJon/CONSOLE-1280
openshift-merge-robot Mar 11, 2019
5b1bad7
Always provide a cluster update path when updates are available
TheRealJon Feb 8, 2019
0d20f67
Merge pull request #1238 from rhamilto/bump-patternfly
openshift-merge-robot Mar 11, 2019
ad11922
Add OWNERS files
spadgett Feb 4, 2019
c017a40
Merge pull request #1154 from dtaylor113/create-srv-class-via-dev-cat…
openshift-merge-robot Mar 11, 2019
abdf645
Merge pull request #1183 from TheRealJon/CONSOLE-1262
openshift-merge-robot Mar 12, 2019
b766f43
Bug 1687685 - Add ClusterVersion to global config page
spadgett Mar 12, 2019
088d772
Fix center text in gauge for new plotly version
spadgett Mar 12, 2019
2a06682
Merge pull request #1277 from spadgett/owners
openshift-merge-robot Mar 12, 2019
bd747e2
Merge pull request #1279 from spadgett/gauge-center-text
openshift-merge-robot Mar 12, 2019
5a7488b
Updates to Machine, MachineSets
sg00dwin Mar 1, 2019
290ccf1
Merge pull request #1271 from enj/enj/i/reload_metadata
openshift-merge-robot Mar 13, 2019
f27b6a8
Run OLM and OperatorHub tests as a separate suite in CI
spadgett Mar 13, 2019
ddab4c4
Merge pull request #1282 from spadgett/olm-suite
openshift-merge-robot Mar 13, 2019
907290d
Add css to truncated container image name to communicate to the user …
sg00dwin Mar 13, 2019
5cf425d
Merge pull request #1263 from sg00dwin/machine-views
openshift-merge-robot Mar 13, 2019
6b38ea1
Merge pull request #1278 from spadgett/global-config-cluster-version
openshift-merge-robot Mar 14, 2019
c36caed
Merge pull request #1180 from christianvogt/devconsole-owners
openshift-merge-robot Mar 14, 2019
fd1148b
Merge pull request #1285 from sg00dwin/container-user-select-copy
openshift-merge-robot Mar 14, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 41 additions & 22 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,6 @@
# How to Contribute

This document outlines some of the conventions on
development workflow, commit message formatting, contact points and other
resources to make it easier to get your contribution accepted.

# Email and Chat

The project currently uses the general Tectonic Team email list and Slack channel:
- Email: team-tectonic@coreos.com
- Slack: #team-tectonic
This document outlines some of the conventions on development workflow.

## Getting Started

Expand All @@ -35,25 +27,52 @@ questions: what changed and why. The subject line should feature the what and
the body of the commit should describe the why.

```
scripts: add the test-cluster command
Add the test-cluster command

this uses tmux to setup a test cluster that you can easily kill and
This uses tmux to setup a test cluster that you can easily kill and
start for debugging.
```

Commits that fix a Bugzilla bug should add the bug number like `Bug 12345: ` to
the first line of the commit and to the pull request title. To help others
quickly go to the bug, also add a link to the bug in the body of the commit
message. This allows automated tooling to generate links to bugs in release
notes and will eventually allow us to automatically transition bugs to `ON_QA`
when the fix is available in a nightly build. Here's an example commit message
for a change that fixes a Bugzilla bug:

```
Bug 1679272: Validate console can talk to OAuth token URL

Make sure we can successfully talk to the OAuth token URL after
discovering metadata before marking the console pod as ready.

Fixes #38
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1679272
```

Pull requests that close GitHub issues should add text to the pull request
description in the format `Closes #123`. GitHub will automatically link each
issue to its pull request and close the issue when the pull request merges.

While we don't have automated tooling for JIRA issues, you should still include
a link to the issue in the commit description to make it easy to get to the issue.

### Pull Requests Against Other Branches

Pull requests opened against branches other than master should start the pull
request title with the branch name in brackets like `[release-3.11]` to make it
obvious. Include the bug as well when appropriate. For instance,

```
[release-3.11] Bug 1643948: Fix crashlooping pods query
```

The format can be described more formally as follows:
If you use the `/cherrypick` command, the bot will automatically append the
branch to the pull request title. For instance, adding a comment to a PR like

```
<subsystem>: <what changed>
<BLANK LINE>
<why this change was made>
<BLANK LINE>
<footer>
/cherrypick release-3.11
```

The first line is the subject and should be no longer than 70 characters, the
second line is always blank, and other lines should be wrapped at 80 characters.
This allows the message to be easier to read on GitHub as well as in various
git tools.
will create a new pull request against the release-3.11 branch when the current
pull request merges as long as there are no merge conflicts.
11 changes: 11 additions & 0 deletions OWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
reviewers:
- alecmerdler
- benjaminapetersen
- jhadvig
- rhamilto
- spadgett
approvers:
- benjaminapetersen
- bparees
- rhamilto
- spadgett
120 changes: 64 additions & 56 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ OpenShift Console

Codename: "Bridge"

[![Build Status](https://jenkins-tectonic.prod.coreos.systems/buildStatus/icon?job=console-build)](https://jenkins-tectonic.prod.coreos.systems/job/console-build/)

[quay.io/openshift/origin-console](https://quay.io/repository/openshift/origin-console?tab=tags)

The console is a more friendly `kubectl` in the form of a single page webapp. It also integrates with other services like monitoring, chargeback, and OLM. Some things that go on behind the scenes include:
Expand Down Expand Up @@ -35,55 +33,66 @@ Backend binaries are output to `/bin`.

### Configure the application

#### OpenShift
The following instructions assume you have an existing cluster you can connect
to. OpenShift 4.0 clusters can be installed using the
[OpenShift Installer](https://github.com/openshift/installer).
You can also use [CodeReady Containers](https://github.com/code-ready/osp4)
for local installs. More information about installing OpenShift can be found at
<https://try.openshift.com/>.


#### OpenShift (no authentication)

Registering an OpenShift OAuth client requires administrative privileges for the entire cluster, not just a local project. Run the following command to log in as cluster admin:
For local development, you can disable OAuth and run bridge with an OpenShift
user's access token. If you've installed OpenShift 4.0, run the following
commands to login as the kubeadmin user and start a local console for
development. Make sure to replace `/path/to/install-dir` with the directory you
used to install OpenShift.

```
oc login -u system:admin
oc login -u kubeadmin -p $(cat /path/to/install-dir/auth/kubeadmin-password)
source ./contrib/oc-environment.sh
./bin/bridge
```

To run bridge locally connected to an OpenShift cluster, create an `OAuthClient` resource with a generated secret and read that secret:
The console will be running at [localhost:9000](http://localhost:9000).

If you don't have `kubeadmin` access, you can use any user's API token,
although you will be limited to that user's access and might not be able to run
the full integration test suite.

#### OpenShift (with authentication)

If you need to work on the backend code for authentication or you need to test
different users, you can set up authentication in your development environment.
Registering an OpenShift OAuth client requires administrative privileges for
the entire cluster, not just a local project. You must be logged in as a
cluster admin such as `system:admin` or `kubeadmin`.

To run bridge locally connected to an OpenShift cluster, create an
`OAuthClient` resource with a generated secret and read that secret:

```
oc process -f examples/console-oauth-client.yaml | oc apply -f -
oc get oauthclient console-oauth-client -o jsonpath='{.secret}' > examples/console-client-secret
```

If the CA bundle of the OpenShift API server is unavailable, fetch the CA certificates from a service account secret. Otherwise copy the CA bundle to `examples/ca.crt`:
If the CA bundle of the OpenShift API server is unavailable, fetch the CA
certificates from a service account secret. Otherwise copy the CA bundle to
`examples/ca.crt`:

```
oc get secrets -n default --field-selector type=kubernetes.io/service-account-token -o json | \
jq '.items[0].data."ca.crt"' -r | python -m base64 -d > examples/ca.crt
# Note: use "openssl base64" because the "base64" tool is different between mac and linux
```

Set the `OPENSHIFT_API` environment variable to tell the script the API endpoint:

```
export OPENSHIFT_API="https://127.0.0.1:8443"
```

Finally run the console and visit [localhost:9000](http://localhost:9000):

```
./examples/run-bridge.sh
```

#### OpenShift (without OAuth)

For local development, you can also disable OAuth and run bridge with an
OpenShift user's access token. Run the following commands to create an admin
user and start bridge for a cluster up environment:

```
oc login -u system:admin
oc adm policy add-cluster-role-to-user cluster-admin admin
oc login -u admin
source ./contrib/oc-environment.sh
./bin/bridge
```

#### Native Kubernetes

If you have a working `kubectl` on your path, you can run the application with:
Expand All @@ -110,32 +119,10 @@ kubectl describe secrets/<secret-id-obtained-previously>

Use this token value to set the `BRIDGE_K8S_BEARER_TOKEN` environment variable when running Bridge.

## Images
## Operator

The `builder-run.sh` script will run any command from a docker container to ensure a consistent build environment.
For example to build with docker run:
```
./builder-run.sh ./build.sh
```

The docker image used by builder-run is itself built and pushed by the
script `push-builder`, which uses the file `Dockerfile-builder` to
define an image. To update the builder-run build environment, first make
your changes to `Dockerfile-builder`, then run `push-builder`, and
then update the BUILDER_VERSION variable in `builder-run` to point to
your new image. Our practice is to manually tag images builder images in the form
`Builder-v$SEMVER` once we're happy with the state of the push.

### Compile, Build, & Push Image

(Almost no reason to ever do this manually, Jenkins handles this automation)

Build an image, tag it with the current git sha, and pushes it to the `quay.io/coreos/tectonic-console` repo.

Must set env vars `DOCKER_USER` and `DOCKER_PASSWORD` or have a valid `.dockercfg` file.
```
./build-docker-push.sh
```
In OpenShift 4.x, the console is installed and managed by the
[console operator](https://github.com/openshift/console-operator/).

## Hacking

Expand Down Expand Up @@ -206,12 +193,34 @@ Run integration tests on an OpenShift cluster:
yarn run test-gui-openshift
```
This will include the normal k8s CRUD tests and CRUD tests for OpenShift
resources. It doesn't include ALM tests since it assumes ALM is not
set up on an OpenShift cluster.
resources.

#### How the Integration Tests Run in CI

The end-to-end tests run against pull requests using [ci-operator](https://github.com/openshift/ci-operator/).
The tests are defined in [this manifest](https://github.com/openshift/release/blob/master/ci-operator/jobs/openshift/console/openshift-console-master-presubmits.yaml)
in the [openshift/release](https://github.com/openshift/release) repo and were generated with [ci-operator-prowgen](https://github.com/openshift/ci-operator-prowgen).

CI runs the [test-prow-e2e.sh](test-prow-e2e.sh) script, which uses the `e2e` suite defined in [protractor.conf.ts](frontend/integration-tests/protractor.conf.ts).

You can simulate an e2e run against an existing 4.0 cluster with the following commands (replace `/path/to/install-dir` with your OpenShift 4.0 install directory):

```
$ export BRIDGE_AUTH_USERNAME=kubeadmin
$ export BRIDGE_BASE_ADDRESS="https://$(oc get route console -n openshift-console -o jsonpath='{.spec.host}')"
$ export BRIDGE_AUTH_PASSWORD=$(cat "/path/to/install-dir/auth/kubeadmin-password")
$ ./test-gui.sh e2e
```

If you don't want to run the entire e2e tests, you can use a different suite from [protractor.conf.ts](frontend/integration-tests/protractor.conf.ts). For instance,

```
$ ./test-gui.sh olm
```

#### Hacking Integration Tests

Remove the `--headless` flag to Chrome (chromeOptions) in `frontend/integration-tests/protractor.conf.ts` to see what the tests are actually doing.
Remove the `--headless` flag to Chrome (chromeOptions) in [protractor.conf.ts](frontend/integration-tests/protractor.conf.ts) to see what the tests are actually doing.

### Dependency Management

Expand Down Expand Up @@ -245,7 +254,6 @@ Update existing frontend dependencies:
yarn upgrade <package@version>
```


#### Supported Browsers

We support the latest versions of the following browsers:
Expand Down
9 changes: 9 additions & 0 deletions auth/OWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
reviewers:
- benjaminapetersen
- enj
- spadgett
approvers:
- benjaminapetersen
- bparees
- enj
- spadgett
Loading