מחיקת סביבות

במאמר הזה מוסבר איך למחוק סביבות. מידע נוסף זמין במאמר About environments and environment groups.

מידע על מחיקת סביבות

כדי למחוק סביבה בצורה תקינה, צריך לבצע כמה שינויים בהגדרות ולהחיל אותם על האשכול. השינויים האלה כוללים הסרה של הגדרת הסביבה והפניות אליה מקובץ ההחלפות, מחיקה של הרכיבים synchronizer, runtime ו-udca, ולבסוף החלה מחדש של ההחלפות כדי לשחזר את האשכול בלי לכלול את הסביבה שרוצים למחוק.

הסיבה לכך שאי אפשר למחוק את הסביבה בשלב אחד היא שהרכיבים האחרים, synchronizer, runtime ו-udca, מחוברים לכל סביבה באמצעות ההגדרות הפנימיות שלהם. הדרך היחידה למחוק סביבה היא למחוק את ההרשאות ולהחיל אותן מחדש.

איך מוחקים סביבה

נניח שיש לכם שתי סביבות, test ו-prod. בקובץ ההגדרות לביטול, ההגדרות יכולות להיראות כך:

...
virtualhosts:
  - name: default-test
    hostAliases: ["api-test.example.com"]
    sslCertPath: ./certs/fullchain-test.pem
    sslKeyPath: ./certs/privkey-test.pem
      env: test
  - name: default-prod
    hostAliases: ["api.example.com"]
    sslCertPath: ./certs/fullchain.pem
    sslKeyPath: ./certs/privkey.pem
      env: prod
...
envs:
  - name: test
    serviceAccountPaths:
      synchronizer: "your_keypath/synchronizer-manager-service-account.json
      udca: "your_keypath/analytic-agent-service-account.json
  - name: prod
    serviceAccountPaths:
      synchronizer: "your_keypath/synchronizer-manager-service-account.json
      udca: "your_keypath/analytic-agent-service-account.json
...

כדי למחוק את סביבת prod, פועלים לפי השלבים הבאים:

  1. מעתיקים את קובץ ההגדרות המקורי – זה שמכיל את ההגדרות של סביבת prod ושל סביבת test – לקובץ חדש שנקרא, לדוגמה, prod-delete.yaml.
  2. פותחים את prod-delete.yaml.
  3. מוחקים את הגדרת הסביבה test מ-envs ומ-virtualhosts, כך שיישארו רק ההגדרות של prod. לדוגמה:
    ...
    virtualhosts:
      - name: default-prod
        hostAliases: ["api.example.com"]
        sslCertPath: ./certs/fullchain.pem
        sslKeyPath: ./certs/privkey.pem
          env: prod
    ...
    envs:
      - name: prod
        serviceAccountPaths:
          synchronizer: "your_keypath/synchronizer-manager-service-account.json
          udca: "your_keypath/analytic-agent-service-account.json
    ...
  4. מסירים את כל השאר מ-prod-delete.yaml except the cassandra config, if present:

    אחרי שמבצעים את השינויים שלמעלה, קובץ ההחלפות אמור להיראות כך:

    ...
    virtualhosts:
      - name: default-prod
        hostAliases: ["api.example.com"]
        sslCertPath: ./certs/fullchain.pem
        sslKeyPath: ./certs/privkey.pem
          env: prod
    
    envs:
      - name: prod
        serviceAccountPaths:
          synchronizer: "your_keypath/synchronizer-manager-service-account.json
          udca: "your_keypath/analytic-agent-service-account.json
    
    cassandra:
      replicaCount: 3
      resources:
        requests:
          cpu: 3500m
          memory: 7Gi
      storage:
        storageClass: pd-ssd
        capacity: 10Gi
  5. מריצים את הפקודה הבאה כדי למחוק את הרכיבים שצוינו:
    apigeectl delete -f prod-delete.yaml -c runtime, udca, synchronizer
  6. פותחים את קובץ ההחלפות המקורי (זה שכולל את ההגדרות של סביבת הבדיקה וסביבת הייצור).
  7. מוחקים את הגדרת סביבת prod מהרכיבים envs ו-virtualhosts. אתם רוצים שרק הגדרת הסביבה test תופיע בקובץ.
  8. מחילים את קובץ ההחלפות ששיניתם על האשכול. הפקודה הזו תיצור מחדש את הרכיבים שנמחקו, ומכיוון שהיא לא מצוינת, היא לא תיצור מחדש את סביבת prod.
    apigeectl apply -f original-overrides.yaml -c runtime, udca, synchronizer
  9. שומרים את השינויים.

  10. כמעט סיימת. עכשיו צריך לעדכן את הסביבות בממשק המשתמש ההיברידי.

  11. פותחים דפדפן ועוברים לממשק המשתמש של Hybrid בכתובת Apigee UI.
  12. מסירים את הסביבה באמצעות השלבים שמתוארים במאמר בנושא מחיקת סביבה קיימת בממשק המשתמש ההיברידי.