= Interacting with the fas2discourse Operator

== Resources
- [1] Code: https://pagure.io/cpe/fas2discourse/
- [2] Playbook: https://pagure.io/fedora-infra/ansible/blob/main/f/playbooks/manual/fas2discourse.yml
- [3] Role: https://pagure.io/fedora-infra/ansible/blob/main/f/roles/fas2discourse

== Overview of the fas2discourse Operator
The role of this operator is to synchronise group membership between IPA and Discourse. It does not synchronise all groups and all members, but only groups which exist in Discourse.

To start the synchronisation of a group, you must first request that a Discourse admin create it in Discourse. The fas2discourse operator will then begin to synchronise users to that group based on their membership in this group in IPA.

== Configuration of the fas2discourse operator
All configuration for the fas2idscourse operator is contained in the Fedora Infra private ansible repo.

Default vars contains the list which are used in the playbook which deploys the operator:

----
fas2discourse_hostname: "fas2discourse.hostna.me"
fas2discourse_namespace: "fas2discourse-operator"
fas2discourse_project_description: "The fas2discourse-operator is responsible for synchronising group membership for users between Discourse and IPA."
fas2discourse_keytab_file: "OVERRIDEME WITH A FILE LOOKUP"
fas2discourse_discourse_apikey: "OVERRIDEME WITH A DISCOURSE APIKEY"
----

The Operator has the following vars which it uses internally. These vars are populated by querying secrets in Openshift:

----
# defaults file for Fas2discourseConfig
fas2discourse_keytab_path: "/etc/fas2discourse"
fas2discourse_principal: "fas2discourse/fas2discourse.hostna.me@FEDORAPROJECT.ORG"
f2d_namespace: "fas2discourse-operator"
f2d_secret: "fas2discourse-operator-k8s-secret"
f2d_discourse_secret: "fas2discourse-operator-discourse-apikey-secret"
fasjson_host: "OVERRIDEME"
discourse_host: "OVERRIDEME"
discourse_api: "OVERRIDEME"
discourse_ignored_groups:
  - "admins"
  - "staff"
  - "moderators"
  - "trust_level_0"
  - "trust_level_1"
  - "trust_level_2"
  - "trust_level_3"
  - "trust_level_4"
----

