-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #144 from vdice/add-testing-notes
doc(testing-notes.md): add testing notes, test data
- Loading branch information
Showing
2 changed files
with
328 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
# Testing Locally | ||
|
||
Sometimes we wish to test a local version of Workflow Manager API, rather than hitting our staging or prod environments, potentially also using a certain version of the [Workflow Manager client](https://github.com/deis/workflow-manager). | ||
|
||
Here we provide the dependencies and steps needed to do so. | ||
|
||
## Dependencies | ||
|
||
- [AWS][aws] credentials/ability to launch a (free tier) [RDS instance][rds] | ||
- [psql](https://www.postgresql.org/docs/9.2/static/app-psql.html) | ||
- a running [Deis Workflow](https://github.com/deis/workflow/blob/master/src/installing-workflow/index.md) cluster... | ||
- installed on a [Kubernetes](http://kubernetes.io/) cluster | ||
|
||
## Steps | ||
|
||
1. Create a `Dev/Test` [RDS instance][rds] using PostgreSQL 9.4.7 in [AWS][aws]. The Free Tier type of `db.t2.micro` is fine. You will specify: | ||
|
||
- RDS instance name: `rdsinstance` | ||
- db name `dbname`* | ||
- db user name `dbuser` | ||
- db password `dbpass` | ||
|
||
Under `Configure Advanced Settings`, select `rds-launch-wizard (VPC)` for `VPC Security Group(s)`. This sets up the rule for `Inbound` traffic to allow all (`0.0.0.0/0`). Otherwise, the provided defaults can be used. | ||
|
||
\**AWS will let you create an instance with db name blank, so don't forget to populate it with a value.* | ||
|
||
|
||
2. Once the instance status is `Available`, we can seed `dbname` with test data: | ||
|
||
```console | ||
psql \ | ||
-f /path/to/test_data.sql \ | ||
--host <rds endpoint> \ | ||
--port 5432 \ | ||
--username dbuser \ | ||
--dbname dbname | ||
``` | ||
|
||
3. On the installed Deis Workflow cluster we will launch a local version of Workflow Manager API. Here we refer to the routable ip for reaching the controller as `ROUTABLE_IP`, which can be the internal router service IP, externally accessible load balancer IP or node IP if using node port: | ||
|
||
```console | ||
export | ||
export DEIS_CONTROLLER_URL=http://deis.${ROUTABLE_IP}.nip.io | ||
deis auth:register $DEIS_CONTROLLER_URL | ||
deis apps:create --no-remote wfm-api | ||
deis config:set \ | ||
AWS_SECRET_ACCESS_KEY="${AWS_SECRET_ACCESS_KEY}" \ | ||
AWS_ACCESS_KEY_ID="${AWS_ACCESS_KEY_ID}" \ | ||
WORKFLOW_MANAGER_API_RDS_REGION=“${RDS_REGION}" \ | ||
WORKFLOW_MANAGER_API_DBINSTANCE=“${RDS_INSTANCE_NAME}" \ | ||
WORKFLOW_MANAGER_API_DBUSER=“${DBUSER}" \ | ||
WORKFLOW_MANAGER_API_DBPASS=“${DBPASS}" \ | ||
WORKFLOW_MANAGER_API_PORT=8081 \ | ||
-a wfm-api | ||
deis pull quay.io/deisci/workflow-manager-api:canary -a wfm-api | ||
# optionally, specify org/workflow-manager-api:tag | ||
# to test a different wfm-api version, provided the image is | ||
# publicly accessible | ||
``` | ||
|
||
Let's verify that our wfm-api app is healthy. The following should return the current cluster count, depending on `test_data.sql` provided: | ||
|
||
`curl http://wfm-api.${ROUTABLE_IP}.nip.io/v3/clusters/count` | ||
|
||
4. Update the existing `deis-workflow-manager` pod to point to our local wfm-api app: | ||
|
||
```console | ||
kubectl edit rc deis-workflow-manager —namespace=deis | ||
# update VERSIONS_API_URL to point to local wfm-api endpoint: | ||
# http://wfm-api.${ROUTABLE_IP}.nip.io | ||
# optionally, can also specify a different workflow-manager | ||
# image, provided it is publicly accessible | ||
kubectl scale rc deis-workflow-manager —namespace=deis —replicas=0 | ||
kubectl scale rc deis-workflow-manager —namespace=deis —replicas=1 | ||
``` | ||
|
||
The following should now return the previous cluster count incremented by 1 thanks to our newly reporting `deis-workflow-manager` pod: | ||
|
||
`curl http://wfm-api.${ROUTABLE_IP}.nip.io/v3/clusters/count` | ||
|
||
[aws]: https://aws.amazon.com/ | ||
[rds]: https://aws.amazon.com/rds/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,246 @@ | ||
-- | ||
-- PostgreSQL database dump | ||
-- | ||
|
||
-- Dumped from database version 9.4.7 | ||
-- Dumped by pg_dump version 9.5.2 | ||
|
||
SET statement_timeout = 0; | ||
SET lock_timeout = 0; | ||
SET client_encoding = 'UTF8'; | ||
SET standard_conforming_strings = on; | ||
SET check_function_bodies = false; | ||
SET client_min_messages = warning; | ||
SET row_security = off; | ||
|
||
-- | ||
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: | ||
-- | ||
|
||
CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog; | ||
|
||
|
||
-- | ||
-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: | ||
-- | ||
|
||
COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language'; | ||
|
||
|
||
SET search_path = public, pg_catalog; | ||
|
||
SET default_tablespace = ''; | ||
|
||
SET default_with_oids = false; | ||
|
||
-- | ||
-- Name: clusters; Type: TABLE; Schema: public; Owner: dbuser | ||
-- | ||
|
||
CREATE TABLE IF NOT EXISTS clusters ( | ||
cluster_id uuid NOT NULL, | ||
data json | ||
); | ||
|
||
|
||
ALTER TABLE clusters OWNER TO dbuser; | ||
|
||
-- | ||
-- Name: clusters_checkins; Type: TABLE; Schema: public; Owner: dbuser | ||
-- | ||
|
||
CREATE TABLE IF NOT EXISTS clusters_checkins ( | ||
checkins_id bigint NOT NULL, | ||
cluster_id uuid, | ||
created_at timestamp without time zone, | ||
data json | ||
); | ||
|
||
|
||
ALTER TABLE clusters_checkins OWNER TO dbuser; | ||
|
||
-- | ||
-- Name: clusters_checkins_checkins_id_seq; Type: SEQUENCE; Schema: public; Owner: dbuser | ||
-- | ||
|
||
CREATE SEQUENCE clusters_checkins_checkins_id_seq | ||
START WITH 1 | ||
INCREMENT BY 1 | ||
NO MINVALUE | ||
NO MAXVALUE | ||
CACHE 1; | ||
|
||
|
||
ALTER TABLE clusters_checkins_checkins_id_seq OWNER TO dbuser; | ||
|
||
-- | ||
-- Name: clusters_checkins_checkins_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dbuser | ||
-- | ||
|
||
ALTER SEQUENCE clusters_checkins_checkins_id_seq OWNED BY clusters_checkins.checkins_id; | ||
|
||
|
||
-- | ||
-- Name: versions; Type: TABLE; Schema: public; Owner: dbuser | ||
-- | ||
|
||
CREATE TABLE IF NOT EXISTS versions ( | ||
version_id bigint NOT NULL, | ||
component_name character varying(32), | ||
train character varying(24), | ||
version character varying(32), | ||
release_timestamp timestamp without time zone, | ||
data json | ||
); | ||
|
||
|
||
ALTER TABLE versions OWNER TO dbuser; | ||
|
||
-- | ||
-- Name: versions_version_id_seq; Type: SEQUENCE; Schema: public; Owner: dbuser | ||
-- | ||
|
||
CREATE SEQUENCE versions_version_id_seq | ||
START WITH 1 | ||
INCREMENT BY 1 | ||
NO MINVALUE | ||
NO MAXVALUE | ||
CACHE 1; | ||
|
||
|
||
ALTER TABLE versions_version_id_seq OWNER TO dbuser; | ||
|
||
-- | ||
-- Name: versions_version_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: dbuser | ||
-- | ||
|
||
ALTER SEQUENCE versions_version_id_seq OWNED BY versions.version_id; | ||
|
||
|
||
-- | ||
-- Name: checkins_id; Type: DEFAULT; Schema: public; Owner: dbuser | ||
-- | ||
|
||
ALTER TABLE ONLY clusters_checkins ALTER COLUMN checkins_id SET DEFAULT nextval('clusters_checkins_checkins_id_seq'::regclass); | ||
|
||
|
||
-- | ||
-- Name: version_id; Type: DEFAULT; Schema: public; Owner: dbuser | ||
-- | ||
|
||
ALTER TABLE ONLY versions ALTER COLUMN version_id SET DEFAULT nextval('versions_version_id_seq'::regclass); | ||
|
||
|
||
-- | ||
-- Data for Name: clusters; Type: TABLE DATA; Schema: public; Owner: dbuser | ||
-- | ||
|
||
COPY clusters (cluster_id, data) FROM stdin; | ||
4f0d9118-cfaa-4265-9335-cc31c6c7f15f {"components":[{"component":{"description":"For testing only!","name":"deis-builder"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-controller"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-database"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-logger"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-minio"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-monitor-grafana"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-monitor-influxdb"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-monitor-stdout"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-registry"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-router"},"version":{"train":"","version":"v2-beta"}},{"component":{"name":"deis-workflow-manager"},"version":{"train":""}}],"id":"4f0d9118-cfaa-4265-9335-cc31c6c7f15f"} | ||
\. | ||
|
||
|
||
-- | ||
-- Data for Name: clusters_checkins; Type: TABLE DATA; Schema: public; Owner: dbuser | ||
-- | ||
|
||
COPY clusters_checkins (checkins_id, cluster_id, created_at, data) FROM stdin; | ||
1 4f0d9118-cfaa-4265-9335-cc31c6c7f15f 2016-05-31 23:16:25 {"components":[{"component":{"description":"For testing only!","name":"deis-builder"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-controller"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-database"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-logger"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-minio"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-monitor-grafana"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-monitor-influxdb"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-monitor-stdout"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-registry"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-router"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-workflow-manager"},"version":{"train":"","version":"v2-beta"}}],"id":"4f0d9118-cfaa-4265-9335-cc31c6c7f15f"} | ||
2 4f0d9118-cfaa-4265-9335-cc31c6c7f15f 2016-05-31 23:25:51 {"components":[{"component":{"description":"For testing only!","name":"deis-builder"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-controller"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-database"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-logger"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-minio"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-monitor-grafana"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-monitor-influxdb"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-monitor-stdout"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-registry"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-router"},"version":{"train":"","version":"v2-beta"}},{"component":{"name":"deis-workflow-manager"},"version":{"train":""}}],"id":"4f0d9118-cfaa-4265-9335-cc31c6c7f15f"} | ||
3 4f0d9118-cfaa-4265-9335-cc31c6c7f15f 2016-05-31 23:27:48 {"components":[{"component":{"description":"For testing only!","name":"deis-builder"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-controller"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-database"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-logger"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-minio"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-monitor-grafana"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-monitor-influxdb"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-monitor-stdout"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-registry"},"version":{"train":"","version":"v2-beta"}},{"component":{"description":"For testing only!","name":"deis-router"},"version":{"train":"","version":"v2-beta"}},{"component":{"name":"deis-workflow-manager"},"version":{"train":""}}],"id":"4f0d9118-cfaa-4265-9335-cc31c6c7f15f"} | ||
\. | ||
|
||
|
||
-- | ||
-- Name: clusters_checkins_checkins_id_seq; Type: SEQUENCE SET; Schema: public; Owner: dbuser | ||
-- | ||
|
||
SELECT pg_catalog.setval('clusters_checkins_checkins_id_seq', 3, true); | ||
|
||
|
||
-- | ||
-- Data for Name: versions; Type: TABLE DATA; Schema: public; Owner: dbuser | ||
-- | ||
|
||
COPY versions (version_id, component_name, train, version, release_timestamp, data) FROM stdin; | ||
45 deis-builder beta 2.0.0-rc1 2016-04-30 00:00:00 {"notes":"rc 1 release"} | ||
46 deis-controller beta 2.0.0-rc1 2016-04-30 00:00:00 {"notes":"rc 1 release"} | ||
47 deis-database beta 2.0.0-rc1 2016-04-30 00:00:00 {"notes":"rc 1 release"} | ||
48 deis-logger beta 2.0.0-rc1 2016-04-30 00:00:00 {"notes":"rc 1 release"} | ||
49 deis-logger-fluentd beta 2.0.0-rc1 2016-04-30 00:00:00 {"notes":"rc 1 release"} | ||
50 deis-registry beta 2.0.0-rc1 2016-04-30 00:00:00 {"notes":"rc 1 release"} | ||
51 deis-router beta 2.0.0-rc1 2016-04-30 00:00:00 {"notes":"rc 1 release"} | ||
52 deis-workflow-manager beta 2.0.0-rc1 2016-04-30 00:00:00 {"notes":"rc 1 release"} | ||
53 deis-minio beta 2.0.0-rc1 2016-04-30 00:00:00 {"notes":"rc 1 release"} | ||
54 deis-monitor-grafana beta 2.0.0-rc1 2016-04-30 00:00:00 {"notes":"rc 1 release"} | ||
55 deis-monitor-influxdb beta 2.0.0-rc1 2016-04-30 00:00:00 {"notes":"rc 1 release"} | ||
56 deis-monitor-stdout beta 2.0.0-rc1 2016-04-30 00:00:00 {"notes":"rc 1 release"} | ||
57 deis-monitor-telegraf beta 2.0.0-rc1 2016-04-30 00:00:00 {"notes":"rc 1 release"} | ||
58 deis-builder beta 2.0.0-beta3 2016-04-28 00:00:00 {"notes":"beta 3 release"} | ||
59 deis-controller beta 2.0.0-beta3 2016-04-28 00:00:00 {"notes":"beta 3 release"} | ||
60 deis-database beta 2.0.0-beta3 2016-04-28 00:00:00 {"notes":"beta 3 release"} | ||
61 deis-logger beta 2.0.0-beta3 2016-04-28 00:00:00 {"notes":"beta 3 release"} | ||
62 deis-logger-fluentd beta 2.0.0-beta3 2016-04-28 00:00:00 {"notes":"beta 3 release"} | ||
63 deis-registry beta 2.0.0-beta3 2016-04-28 00:00:00 {"notes":"beta 3 release"} | ||
64 deis-router beta 2.0.0-beta3 2016-04-28 00:00:00 {"notes":"beta 3 release"} | ||
65 deis-workflow-manager beta 2.0.0-beta3 2016-04-28 00:00:00 {"notes":"beta 3 release"} | ||
66 deis-minio beta 2.0.0-beta3 2016-04-28 00:00:00 {"notes":"beta 3 release"} | ||
67 deis-monitor-grafana beta 2.0.0-beta3 2016-04-28 00:00:00 {"notes":"beta 3 release"} | ||
68 deis-monitor-influxdb beta 2.0.0-beta3 2016-04-28 00:00:00 {"notes":"beta 3 release"} | ||
69 deis-monitor-stdout beta 2.0.0-beta3 2016-04-28 00:00:00 {"notes":"beta 3 release"} | ||
71 deis-monitor-telegraf beta 2.0.0-beta3 2016-04-28 00:00:00 {"notes":"beta 3 release"} | ||
\. | ||
|
||
|
||
-- | ||
-- Name: versions_version_id_seq; Type: SEQUENCE SET; Schema: public; Owner: dbuser | ||
-- | ||
|
||
SELECT pg_catalog.setval('versions_version_id_seq', 71, true); | ||
|
||
|
||
-- | ||
-- Name: clusters_checkins_pkey; Type: CONSTRAINT; Schema: public; Owner: dbuser | ||
-- | ||
|
||
ALTER TABLE ONLY clusters_checkins | ||
ADD CONSTRAINT clusters_checkins_pkey PRIMARY KEY (checkins_id); | ||
|
||
|
||
-- | ||
-- Name: clusters_pkey; Type: CONSTRAINT; Schema: public; Owner: dbuser | ||
-- | ||
|
||
ALTER TABLE ONLY clusters | ||
ADD CONSTRAINT clusters_pkey PRIMARY KEY (cluster_id); | ||
|
||
|
||
-- | ||
-- Name: versions_component_name_train_version_key; Type: CONSTRAINT; Schema: public; Owner: dbuser | ||
-- | ||
|
||
ALTER TABLE ONLY versions | ||
ADD CONSTRAINT versions_component_name_train_version_key UNIQUE (component_name, train, version); | ||
|
||
|
||
-- | ||
-- Name: versions_pkey; Type: CONSTRAINT; Schema: public; Owner: dbuser | ||
-- | ||
|
||
ALTER TABLE ONLY versions | ||
ADD CONSTRAINT versions_pkey PRIMARY KEY (version_id); | ||
|
||
|
||
-- | ||
-- Name: public; Type: ACL; Schema: -; Owner: dbuser | ||
-- | ||
|
||
REVOKE ALL ON SCHEMA public FROM PUBLIC; | ||
REVOKE ALL ON SCHEMA public FROM dbuser; | ||
GRANT ALL ON SCHEMA public TO dbuser; | ||
GRANT ALL ON SCHEMA public TO PUBLIC; | ||
|
||
|
||
-- | ||
-- PostgreSQL database dump complete | ||
-- |