diff --git a/README.md b/README.md index 59fce52..79e6990 100644 --- a/README.md +++ b/README.md @@ -94,7 +94,8 @@ tiers. SHKeeper needs both its flag and URL/currencies plus API key in the Secre It prepays one calendar month per invoice, without automatic renewal. Defaults reuse product `prod_Sc9N5J0vNAdLCn` and the same five live Price IDs as -the application. Provision dedicated `www-level-0` through `www-level-4` +the application. Level 0 is the free account baseline; paid offers are levels +1–5. Provision dedicated `www-level-1` through `www-level-5` groupOfUniqueNames groups, sentinel and ACLs separately. Override group DNs if needed; sandbox testing requires separate test-mode prices. diff --git a/defaults/main.yml b/defaults/main.yml index 086b1f9..9ea9343 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -88,36 +88,42 @@ www_membership_environment: SHKEEPER_CURRENCIES: "" SHKEEPER_CA_CERT_FILE: "" -# Existing LIVE Stripe prices. Provision the dedicated group DNs separately. +# Existing LIVE Stripe prices. Level 0 is free and is not configured as a paid tier. +# Provision the dedicated paid-group DNs separately. # Override with {} to disable paid tiers, or test-mode prices for a sandbox. www_membership_tiers: - level-0: - label: Level 0 + level-1: + level: 1 + label: Supporter price_id: price_1Rgv4xC5KPXqTvVLfMd6z7wn price_label: $4 USD / month usd_amount: "4.00" - group_dn: cn=www-level-0,ou=groups,dc=eom,dc=dev - level-1: - label: Level 1 + group_dn: cn=www-level-1,ou=groups,dc=eom,dc=dev + level-2: + level: 2 + label: Insider price_id: price_1Rgv5QC5KPXqTvVLv1PaHWb5 price_label: $8 USD / month usd_amount: "8.00" - group_dn: cn=www-level-1,ou=groups,dc=eom,dc=dev - level-2: - label: Level 2 + group_dn: cn=www-level-2,ou=groups,dc=eom,dc=dev + level-3: + level: 3 + label: Collaborator price_id: price_1Rgv5rC5KPXqTvVL8Ol8sMUf price_label: $16 USD / month usd_amount: "16.00" - group_dn: cn=www-level-2,ou=groups,dc=eom,dc=dev - level-3: - label: Level 3 + group_dn: cn=www-level-3,ou=groups,dc=eom,dc=dev + level-4: + level: 4 + label: Sustainer price_id: price_1Rgv6FC5KPXqTvVL39mAxYjm price_label: $32 USD / month usd_amount: "32.00" - group_dn: cn=www-level-3,ou=groups,dc=eom,dc=dev - level-4: - label: Level 4 + group_dn: cn=www-level-4,ou=groups,dc=eom,dc=dev + level-5: + level: 5 + label: Patron price_id: price_1Rgv6mC5KPXqTvVLkcmznWZa price_label: $64 USD / month usd_amount: "64.00" - group_dn: cn=www-level-4,ou=groups,dc=eom,dc=dev + group_dn: cn=www-level-5,ou=groups,dc=eom,dc=dev diff --git a/tests/validate_manifests.py b/tests/validate_manifests.py index 4df51d0..a946b54 100755 --- a/tests/validate_manifests.py +++ b/tests/validate_manifests.py @@ -51,7 +51,8 @@ assert plaintext_config["LDAP_URL"] == "ldap://openldap.openldap.svc.cluster.loc assert all(isinstance(value, str) for value in plaintext_config.values()) assert "MEMBERSHIP_SECRET_KEY" not in config and "SHKEEPER_API_KEY" not in config tiers = json.loads(find(all_objects, "ConfigMap", "membership-tiers")["data"]["tiers.json"]) -assert len(tiers) == 5 and tiers["level-4"]["usd_amount"] == "64.00" +assert len(tiers) == 5 and tiers["level-5"]["usd_amount"] == "64.00" +assert [tiers[f"level-{level}"]["level"] for level in range(1, 6)] == list(range(1, 6)) for name in ["membership", "membership-worker"]: deployment = find(all_objects, "Deployment", name) pod_checks(deployment["spec"]["template"]["spec"])